From 36a715307f7fae6d78592cfba86ad2b8ad2e7f00 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 25 Sep 2025 11:18:42 +0200 Subject: [PATCH 01/69] fix transient Console output related test --- .../Tests/Helper/ProcessHelperTest.php | 133 +++++++++--------- 1 file changed, 67 insertions(+), 66 deletions(-) diff --git a/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php b/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php index 1fd88987baabe..ac7363fba430b 100644 --- a/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php +++ b/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php @@ -23,7 +23,7 @@ class ProcessHelperTest extends TestCase /** * @dataProvider provideCommandsAndOutput */ - public function testVariousProcessRuns(string $expected, Process|string|array $cmd, int $verbosity, ?string $error) + public function testVariousProcessRuns(array $expectedOutputLines, bool $successful, Process|string|array $cmd, int $verbosity, ?string $error) { if (\is_string($cmd)) { $cmd = Process::fromShellCommandline($cmd); @@ -31,9 +31,57 @@ public function testVariousProcessRuns(string $expected, Process|string|array $c $helper = new ProcessHelper(); $helper->setHelperSet(new HelperSet([new DebugFormatterHelper()])); - $output = $this->getOutputStream($verbosity); - $helper->run($output, $cmd, $error); - $this->assertEquals($expected, $this->getOutput($output)); + $outputStream = $this->getOutputStream($verbosity); + $helper->run($outputStream, $cmd, $error); + + $expectedLines = 1 + \count($expectedOutputLines); + + if (StreamOutput::VERBOSITY_VERY_VERBOSE <= $verbosity) { + // the executed command and the result are displayed + $expectedLines += 2; + } + + if (null !== $error) { + ++$expectedLines; + } + + $output = explode("\n", $this->getOutput($outputStream)); + + $this->assertCount($expectedLines, $output); + + // remove the trailing newline + array_pop($output); + + if (null !== $error) { + $this->assertSame($error, array_pop($output)); + } + + if (StreamOutput::VERBOSITY_VERY_VERBOSE <= $verbosity) { + if ($cmd instanceof Process) { + $expectedCommandLine = $cmd->getCommandLine(); + } elseif (\is_array($cmd) && $cmd[0] instanceof Process) { + $expectedCommandLine = $cmd[0]->getCommandLine(); + } elseif (\is_array($cmd)) { + $expectedCommandLine = (new Process($cmd))->getCommandLine(); + } else { + $expectedCommandLine = $cmd; + } + + $this->assertSame(' RUN '.$expectedCommandLine, array_shift($output)); + + if ($successful) { + $this->assertSame(' RES Command ran successfully', array_pop($output)); + } else { + $this->assertSame(' RES 252 Command did not run successfully', array_pop($output)); + } + } + + if ([] !== $expectedOutputLines) { + sort($expectedOutputLines); + sort($output); + + $this->assertEquals($expectedOutputLines, $output); + } } public function testPassedCallbackIsExecuted() @@ -51,70 +99,23 @@ public function testPassedCallbackIsExecuted() public static function provideCommandsAndOutput(): array { - $successOutputVerbose = <<<'EOT' - RUN php -r "echo 42;" - RES Command ran successfully - -EOT; - $successOutputDebug = <<<'EOT' - RUN php -r "echo 42;" - OUT 42 - RES Command ran successfully - -EOT; - $successOutputDebugWithTags = <<<'EOT' - RUN php -r "echo '42';" - OUT 42 - RES Command ran successfully - -EOT; - $successOutputProcessDebug = <<<'EOT' - RUN 'php' '-r' 'echo 42;' - OUT 42 - RES Command ran successfully - -EOT; - $syntaxErrorOutputVerbose = <<<'EOT' - RUN php -r "fwrite(STDERR, 'error message');usleep(50000);fwrite(STDOUT, 'out message');exit(252);" - RES 252 Command did not run successfully - -EOT; - $syntaxErrorOutputDebug = <<<'EOT' - RUN php -r "fwrite(STDERR, 'error message');usleep(500000);fwrite(STDOUT, 'out message');exit(252);" - ERR error message - OUT out message - RES 252 Command did not run successfully - -EOT; - $PHP = '\\' === \DIRECTORY_SEPARATOR ? '"!PHP!"' : '"$PHP"'; - $successOutputPhp = <<getCommandLine(); - $successOutputProcessDebug = str_replace("'php' '-r' 'echo 42;'", $args, $successOutputProcessDebug); return [ - ['', 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERBOSE, null], - [$successOutputVerbose, 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERY_VERBOSE, null], - [$successOutputDebug, 'php -r "echo 42;"', StreamOutput::VERBOSITY_DEBUG, null], - [$successOutputDebugWithTags, 'php -r "echo \'42\';"', StreamOutput::VERBOSITY_DEBUG, null], - ['', 'php -r "syntax error"', StreamOutput::VERBOSITY_VERBOSE, null], - [$syntaxErrorOutputVerbose, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, null], - [$syntaxErrorOutputDebug, 'php -r "fwrite(STDERR, \'error message\');usleep(500000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, null], - [$errorMessage.\PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERBOSE, $errorMessage], - [$syntaxErrorOutputVerbose.$errorMessage.\PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, $errorMessage], - [$syntaxErrorOutputDebug.$errorMessage.\PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(500000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, $errorMessage], - [$successOutputProcessDebug, ['php', '-r', 'echo 42;'], StreamOutput::VERBOSITY_DEBUG, null], - [$successOutputDebug, Process::fromShellCommandline('php -r "echo 42;"'), StreamOutput::VERBOSITY_DEBUG, null], - [$successOutputProcessDebug, [new Process(['php', '-r', 'echo 42;'])], StreamOutput::VERBOSITY_DEBUG, null], - [$successOutputPhp, [Process::fromShellCommandline('php -r '.$PHP), 'PHP' => 'echo 42;'], StreamOutput::VERBOSITY_DEBUG, null], + [[], true, 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERBOSE, null], + [[], true, 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERY_VERBOSE, null], + [[' OUT 42'], true, 'php -r "echo 42;"', StreamOutput::VERBOSITY_DEBUG, null], + [[' OUT 42'], true, 'php -r "echo \'42\';"', StreamOutput::VERBOSITY_DEBUG, null], + [[], false, 'php -r "syntax error"', StreamOutput::VERBOSITY_VERBOSE, null], + [[], false, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, null], + [[' ERR error message', ' OUT out message'], false, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, null], + [[], false, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERBOSE, 'An error occurred'], + [[], false, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, 'An error occurred'], + [[' ERR error message', ' OUT out message'], false, 'php -r "fwrite(STDERR, \'error message\');usleep(500000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, 'An error occurred'], + [[' OUT 42'], true, ['php', '-r', 'echo 42;'], StreamOutput::VERBOSITY_DEBUG, null], + [[' OUT 42'], true, Process::fromShellCommandline('php -r "echo 42;"'), StreamOutput::VERBOSITY_DEBUG, null], + [[' OUT 42'], true, [new Process(['php', '-r', 'echo 42;'])], StreamOutput::VERBOSITY_DEBUG, null], + [[' OUT 42'], true, [Process::fromShellCommandline('php -r '.$PHP), 'PHP' => 'echo 42;'], StreamOutput::VERBOSITY_DEBUG, null], ]; } @@ -127,6 +128,6 @@ private function getOutput(StreamOutput $output): string { rewind($output->getStream()); - return stream_get_contents($output->getStream()); + return str_replace(\PHP_EOL, "\n", stream_get_contents($output->getStream())); } } From cd93939037afec57fcabd37d5fa32fc8dc7910ac Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 25 Sep 2025 17:28:13 +0200 Subject: [PATCH 02/69] do not coerce NAN to other types --- src/Symfony/Component/Validator/ConstraintValidator.php | 4 ++++ src/Symfony/Component/VarDumper/Cloner/Data.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/ConstraintValidator.php b/src/Symfony/Component/Validator/ConstraintValidator.php index 3c4167be33a73..60808258c3160 100644 --- a/src/Symfony/Component/Validator/ConstraintValidator.php +++ b/src/Symfony/Component/Validator/ConstraintValidator.php @@ -127,6 +127,10 @@ protected function formatValue(mixed $value, int $format = 0): string return 'true'; } + if (is_nan($value)) { + return 'NAN'; + } + return (string) $value; } diff --git a/src/Symfony/Component/VarDumper/Cloner/Data.php b/src/Symfony/Component/VarDumper/Cloner/Data.php index a342ecb46382c..e5d776f5a1a6c 100644 --- a/src/Symfony/Component/VarDumper/Cloner/Data.php +++ b/src/Symfony/Component/VarDumper/Cloner/Data.php @@ -298,7 +298,7 @@ private function dumpItem(DumperInterface $dumper, Cursor $cursor, array &$refs, if (!$item instanceof Stub) { $cursor->attr = []; $type = \gettype($item); - if ($item && 'array' === $type) { + if ('array' === $type && $item) { $item = $this->getStub($item); } } elseif (Stub::TYPE_REF === $item->type) { From 30037a1c2b105d2e066d642e6b610c411a4736e9 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 26 Sep 2025 13:56:47 +0200 Subject: [PATCH 03/69] do not pass the empty string to ord() --- src/Symfony/Component/Console/Helper/QuestionHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Console/Helper/QuestionHelper.php b/src/Symfony/Component/Console/Helper/QuestionHelper.php index 593b01b39da85..dd0e67d89910c 100644 --- a/src/Symfony/Component/Console/Helper/QuestionHelper.php +++ b/src/Symfony/Component/Console/Helper/QuestionHelper.php @@ -317,7 +317,7 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu $ofs += ('A' === $c[2]) ? -1 : 1; $ofs = ($numMatches + $ofs) % $numMatches; } - } elseif (\ord($c) < 32) { + } elseif ('' === $c || \ord($c) < 32) { if ("\t" === $c || "\n" === $c) { if ($numMatches > 0 && -1 !== $ofs) { $ret = (string) $matches[$ofs]; From bac84d19096caf8cbdc88b125cb007b321aa05a2 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 25 Sep 2025 17:12:15 +0200 Subject: [PATCH 04/69] don't cast strings exceeding the min/max int ranges --- .../Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php | 2 +- src/Symfony/Component/Yaml/Inline.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php b/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php index 0ed6a23d267db..20ffcbebdc54e 100644 --- a/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php +++ b/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php @@ -67,7 +67,7 @@ public function getEntitiesByIds(string $identifier, array $values): array // Filter out non-integer values (e.g. ""). If we don't, some // databases such as PostgreSQL fail. - $values = array_values(array_filter($values, fn ($v) => (string) $v === (string) (int) $v || ctype_digit($v))); + $values = array_values(array_filter($values, static fn ($v) => \is_string($v) && ctype_digit($v) || (string) $v === (string) (int) $v)); } elseif (\in_array($type, ['ulid', 'uuid', 'guid'])) { $parameterType = class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY; diff --git a/src/Symfony/Component/Yaml/Inline.php b/src/Symfony/Component/Yaml/Inline.php index 827e9a1cd38ab..8feecea1585b0 100644 --- a/src/Symfony/Component/Yaml/Inline.php +++ b/src/Symfony/Component/Yaml/Inline.php @@ -701,6 +701,10 @@ private static function evaluateScalar(string $scalar, int $flags, array &$refer switch (true) { case ctype_digit($scalar): case '-' === $scalar[0] && ctype_digit(substr($scalar, 1)): + if ($scalar < \PHP_INT_MIN || \PHP_INT_MAX < $scalar) { + return $scalar; + } + $cast = (int) $scalar; return ($scalar === (string) $cast) ? $cast : $scalar; From b373871dec3b2f9d96f009756574306579ee97ce Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 27 Sep 2025 14:20:49 +0200 Subject: [PATCH 05/69] Update CHANGELOG for 6.4.26 --- CHANGELOG-6.4.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/CHANGELOG-6.4.md b/CHANGELOG-6.4.md index c0533d60326b3..5f4b81edfd4cd 100644 --- a/CHANGELOG-6.4.md +++ b/CHANGELOG-6.4.md @@ -7,6 +7,41 @@ in 6.4 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v6.4.0...v6.4.1 +* 6.4.26 (2025-09-27) + + * bug #61856 [Console] do not pass the empty string to ord() (xabbuh) + * bug #61855 [DoctrineBridge][Yaml] don't cast strings exceeding the min/max int ranges (xabbuh) + * bug #61844 do not coerce NAN to other types (xabbuh) + * bug #61825 [DoctrineBridge] Make `EntityUserProvider`s pass attributes to their loader (MatTheCat) + * bug #61793 [AssetMapper] Prevent duplicate entries in module preloads (xDeSwa) + * bug #61757 [FrameworkBundle] Perform-no-deep-merging on workflow transitions' from/to configs (nicolas-grekas) + * bug #61766 Fix ord()-related PHP 8.5 deprecations (nicolas-grekas) + * bug #61368 [HttpKernel] Refine Vary header check to skip special handling of 'Accept-Language' when it's the only entry and '_vary_by_language' is `true` in `CacheAttributeListener` (santysisi) + * bug #61746 [Serializer] Fix unknown type in denormalization errors when union type used in constructor (d-mitrofanov-v) + * bug #61724 [Console] Fix handling of `\E` in Bash completion (HypeMC) + * bug #61518 [HttpKernel] Handle an array vary header in the http cache store for write (philpichet) + * bug #61736 [PhpUnitBridge] do not try to modify the result of a PhptTestCase (xabbuh) + * bug #61731 [PhpUnitBridge] Fix gathering deprecation in phpt (nicolas-grekas) + * bug #61729 [PhpUnitBridge] Silence deprecation of __sleep/wakeup() (nicolas-grekas) + * bug #61727 Replace __sleep/wakeup() by __(un)serialize() for throwing and internal usages (nicolas-grekas) + * bug #61693 [Console] Don’t append a new line to test inputs ending with an EOT (MatTheCat) + * bug #61596 [FrameworkBundle] Normalize workflow places separately (KevinVanSonsbeek) + * bug #61690 [Console] Don’t automatically append EOT to multiline test inputs (MatTheCat) + * bug #61667 [Config] Fix `GlobResource` pattern with trailing slash (HypeMC) + * bug #61659 [Security] Fix `HttpUtils::createRequest()` when the base request is forwarded (MatTheCat) + * bug #61645 Replace backtick operator, deprecated in PHP 8.5, with shell_exec() (iluuu1994) + * bug #61097 [Serializer] Fix normalizing objects with accessors having the same name as a property (RafaelKr) + * bug #61614 [SecurityBundle] Prevent accessing the tracked token storage when collecting data (MatTheCat) + * bug #61605 [Cache] Fix internal representation of non-static values (nicolas-grekas) + * bug #61599 [Cache] Make `TagAwareAdapter` registrable as a service (a.dmitryuk) + * bug #61595 [Security] Pass attributes to nested `ChainUserProvider`s (valtzu) + * bug #61232 [Messenger] Firebird Database - incompatibility with expected lowercase columns (DSsatwareAG) + * bug #61583 [DoctrineBridge] Fix exception catch when deleting temporary table in the sameDatabaseChecker (GromNaN) + * bug #61585 [HttpFoundation][SQLSRV] Change column type from `TEXT` to `STRING` (Matt-PMCT) + * bug #61571 [Serializer] Fix dealing with asymmetric visilibity for properties (santysisi) + * bug #61573 [Inflector][String] Fix edge cases (OskarStark) + * bug #61548 [Security] Fix attribute-based chained user providers (valtzu) + * 6.4.25 (2025-08-29) * bug #61520 [Yaml] Fix scope resolution operator in flow mapping keys (MatTheCat) From dd27d2136dab0d5d8c7f33fc2a4af19e7be2a947 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 27 Sep 2025 14:20:54 +0200 Subject: [PATCH 06/69] Update CONTRIBUTORS for 6.4.26 --- CONTRIBUTORS.md | 11384 +++++++++++++++++++++++----------------------- 1 file changed, 5707 insertions(+), 5677 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 03564a581aa97..e426e1dcc33c8 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -4,45 +4,45 @@ CONTRIBUTORS Symfony is the result of the work of many people who made the code better. The Symfony Connect username in parenthesis allows to get more information - - Fabien Potencier (fabpot) - Nicolas Grekas (nicolas-grekas) + - Fabien Potencier (fabpot) - Christian Flothmann (xabbuh) - Alexander M. Turek (derrabus) - - Bernhard Schussek (bschussek) - - Robin Chalas (chalas_r) - Oskar Stark (oskarstark) + - Robin Chalas (chalas_r) + - Bernhard Schussek (bschussek) - Alexandre Daubois (alexandre-daubois) - Tobias Schultze (tobion) + - Matthias Schmidt - Grégoire Pineau (lyrixx) - Thomas Calvet (fancyweb) - Christophe Coevoet (stof) - Wouter de Jong (wouterj) - - Matthias Schmidt - Jordi Boggiano (seldaek) - Maxime Steinhausser (ogizanagi) - Kévin Dunglas (dunglas) + - Yonel Ceruto (yonelceruto) + - Jérôme Tamarelle (gromnan) - Javier Eguiluz (javier.eguiluz) - Victor Berchet (victor) - Ryan Weaver (weaverryan) + - HypeMC (hypemc) - Jérémy DERUSSÉ (jderusse) - - Yonel Ceruto (yonelceruto) - Jules Pietri (heah) - - Jérôme Tamarelle (gromnan) - - HypeMC (hypemc) - Johannes S (johannes) - Kris Wallsmith (kriswallsmith) - Jakub Zalas (jakubzalas) + - Antoine Lamirault (alamirault) - Hugo Hamon (hhamon) - Tobias Nyholm (tobias) - - Antoine Lamirault (alamirault) - Samuel ROZE (sroze) + - Mathias Arlaud (mtarld) - Pascal Borreli (pborreli) - Romain Neutron - Kevin Bond (kbond) - Joseph Bielawski (stloyd) - - Mathias Arlaud (mtarld) - - Drak (drak) - Abdellatif Ait boudad (aitboudad) + - Drak (drak) - Lukas Kahwe Smith (lsmith) - Hamza Amrouche (simperfit) - Martin Hasoň (hason) @@ -52,6079 +52,6109 @@ The Symfony Connect username in parenthesis allows to get more information - Igor Wiedler - Jan Schädlich (jschaedl) - Mathieu Lechat (mat_the_cat) - - Vincent Langlet (deviling) - Mathieu Santostefano (welcomattic) + - matlec + - Vincent Langlet (deviling) + - Santiago San Martin (santysisi) - Simon André (simonandre) - Matthias Pigulla (mpdude) - Gabriel Ostrolucký (gadelat) - - matlec - Jonathan Wage (jwage) - Valentin Udaltsov (vudaltsov) - Grégoire Paris (greg0ire) - Alexandre Salomé (alexandresalome) - William DURAND - Dany Maillard (maidmaid) - - Alexander Mols (asm89) - - Francis Besset (francisbesset) - - Titouan Galopin (tgalopin) - Eriksen Costa + - Titouan Galopin (tgalopin) - stealth35 ‏ (stealth35) + - Alexander Mols (asm89) + - Alexander Schranz (alexander-schranz) + - Francis Besset (francisbesset) + - Antonio J. García Lagar (ajgarlag) - Gábor Egyed (1ed) - Diego Saint Esteben (dosten) - - Alexander Schranz (alexander-schranz) - Pierre du Plessis (pierredup) + - Kévin THERAGE (kevin_therage) - Tomasz Kowalczyk (thunderer) - David Maicher (dmaicher) - Bulat Shakirzyanov (avalanche123) - - Gary PEGEOT (gary-p) - Iltar van der Berg - Miha Vrhovnik (mvrhov) - - Allison Guilhem (a_guilhem) + - Gary PEGEOT (gary-p) - Saša Stamenković (umpirsky) + - Allison Guilhem (a_guilhem) - Mathieu Piot (mpiot) + - corradogrimoldi - Ruud Kamphuis (ruudk) - Vasilij Duško (staff) + - Valtteri R (valtzu) - Tomas Norkūnas (norkunas) - - Santiago San Martin (santysisi) - - Sarah Khalil (saro0h) - - Laurent VOULLEMIER (lvo) - Konstantin Kudryashov (everzet) - - Guilhem N (guilhemn) + - Laurent VOULLEMIER (lvo) + - Sarah Khalil (saro0h) - Bilal Amarni (bamarni) + - Guilhem N (guilhemn) - Eriksen Costa - - Florin Patan (florinpatan) - Vladimir Reznichenko (kalessil) - - Henrik Bjørnskov (henrikbjorn) + - Florin Patan (florinpatan) - Peter Rehm (rpet) + - Henrik Bjørnskov (henrikbjorn) - David Buchmann (dbu) - - Jáchym Toušek (enumag) - Andrej Hudec (pulzarraider) - - Eric Clemmons (ericclemmons) - Hubert Lenoir (hubert_lenoir) + - Jáchym Toušek (enumag) - Christian Raue - - Issei Murasawa (issei_m) - - Douglas Greenshields (shieldo) - - Alex Pott - - Denis (yethee) - Arnout Boks (aboks) + - Eric Clemmons (ericclemmons) + - Douglas Greenshields (shieldo) - Michel Weimerskirch (mweimerskirch) - - Antonio J. García Lagar (ajgarlag) - - Kévin THERAGE (kevin_therage) - - Frank A. Fiebig (fafiebig) + - Denis (yethee) + - Alex Pott + - Issei Murasawa (issei_m) - Antoine Makdessi (amakdessi) - - Fran Moreno (franmomu) - Baldini + - Fran Moreno (franmomu) + - Frank A. Fiebig (fafiebig) + - Charles Sarrazin (csarrazi) - Dariusz Górecki (canni) - Henrik Westphal (snc) - - Charles Sarrazin (csarrazi) - - Ener-Getick - Massimiliano Arione (garak) - - soyuka + - Ener-Getick + - Phil E. Taylor (philetaylor) - Graham Campbell (graham) + - soyuka + - Tugdual Saunier (tucksaun) - Joel Wurtz (brouznouf) - - Phil E. Taylor (philetaylor) - Brandon Turner - Lee McDermott - Luis Cordova (cordoval) - - Tugdual Saunier (tucksaun) + - Julien Falque (julienfalque) + - Jordan Alliot (jalliot) + - Daniel Holmes (dholmes) - Bart van den Burg (burgov) - Vasilij Dusko | CREATION - - Toni Uebernickel (havvg) - - Daniel Holmes (dholmes) - Konstantin Myakshin (koc) - - Julien Falque (julienfalque) - - Jordan Alliot (jalliot) - - Valtteri R (valtzu) + - Toni Uebernickel (havvg) - John Wards (johnwards) - Yanick Witschi (toflar) - Théo FIDRY - - corradogrimoldi - Antoine Hérault (herzult) - Konstantin.Myakshin - - Arnaud Le Blanc (arnaud-lb) - Tac Tacelosky (tacman1123) - Rokas Mikalkėnas (rokasm) - - Jeroen Spee (jeroens) - - Sebastiaan Stok (sstok) + - Arnaud Le Blanc (arnaud-lb) - Maxime STEINHAUSSER + - Sebastiaan Stok (sstok) + - Jeroen Spee (jeroens) + - Jacob Dreesen (jdreesen) + - Chris Wilkinson (thewilkybarkid) - gnito-org - Brice BERNARD (brikou) - - Jérôme Vasseur (jvasseur) - - Jacob Dreesen (jdreesen) - Tim Nagel (merk) - - Chris Wilkinson (thewilkybarkid) + - Jérôme Vasseur (jvasseur) - Peter Kokot (peterkokot) - - Vladimir Tsykun (vtsykun) - marc.weistroff - Michal Piotrowski - Nicolas Philippe (nikophil) + - Florent Morselli (spomky_) - Lars Strojny (lstrojny) + - Vladimir Tsykun (vtsykun) - Javier Spagnoletti (phansys) - Adrien Brault (adrienbrault) - - Florent Morselli (spomky_) - Włodzimierz Gajda (gajdaw) - - Teoh Han Hui (teohhanhui) - Florian Voutzinos (florianv) - Przemysław Bogusz (przemyslaw-bogusz) - Colin Frei - - Gordon Franke (gimler) - - Fabien Pennequin (fabienpennequin) - - Gregor Harlan (gharlan) + - Teoh Han Hui (teohhanhui) - Maxime Helias (maxhelias) - - Baptiste Clavié (talus) - - Paráda József (paradajozsef) + - Saif Eddin Gmati (azjezz) + - Maximilian Beckers (maxbeckers) - Alexander Schwenn (xelaris) - Dāvis Zālītis (k0d3r1s) - - Maximilian Beckers (maxbeckers) - - Christopher Hertel (chertel) - - Daniel Wehner (dawehner) + - Gordon Franke (gimler) + - Paráda József (paradajozsef) + - Fabien Pennequin (fabienpennequin) + - Baptiste Clavié (talus) + - Gregor Harlan (gharlan) + - Joshua Thijssen + - Malte Schlüter (maltemaltesich) - Hugo Alliaume (kocal) - Bob van de Vijver (bobvandevijver) - - jeremyFreeAgent (jeremyfreeagent) + - Michael Babker (mbabker) - Alexis Lefebvre + - Daniel Wehner (dawehner) + - Christopher Hertel (chertel) - Vasilij Dusko - - Michael Babker (mbabker) - - Joshua Thijssen - - Malte Schlüter (maltemaltesich) - - OGAWA Katsuhiro (fivestar) - - Andreas Schempp (aschempp) - - Gabriel Caruso + - jeremyFreeAgent (jeremyfreeagent) - Niels Keurentjes (curry684) - - François-Xavier de Guillebon (de-gui_f) - - Robert Schönthal (digitalkaoz) - - Eric GELOEN (gelo) + - OGAWA Katsuhiro (fivestar) + - Richard van Laak (rvanlaak) - Smaine Milianni (ismail1432) + - Eric GELOEN (gelo) - Jhonny Lidfors (jhonne) + - Gabriel Caruso - Stefano Sala (stefano.sala) + - François-Xavier de Guillebon (de-gui_f) + - Andreas Schempp (aschempp) - Ion Bazan (ionbazan) + - Robert Schönthal (digitalkaoz) + - Florent Mata (fmata) - Guilherme Blanco (guilhermeblanco) - - Richard van Laak (rvanlaak) - - Tigran Azatyan (tigranazatyan) + - Sebastian Hörl (blogsh) - Juti Noppornpitak (shiroyuki) - Daniel Gomes (danielcsgomes) - Anthony MARTIN - - David Prévot (taffit) - - Florent Mata (fmata) + - Hidenori Goto (hidenorigoto) - Arnaud Kleinpeter (nanocom) - - Sebastian Hörl (blogsh) - - Thomas Landauer (thomas-landauer) + - Tigran Azatyan (tigranazatyan) - Jonathan Scheiber (jmsche) - - Hidenori Goto (hidenorigoto) + - Thomas Landauer (thomas-landauer) + - David Prévot (taffit) - Fritz Michael Gschwantner (fritzmg) - - Roman Martinuk (a2a4) - - Jan Rosier (rosier) - - Farhad Safarov (safarov) - - jwdeitch - - Alessandro Chitolina (alekitto) - Rafael Dohms (rdohms) - Pablo Godel (pgodel) - - Saif Eddin Gmati (azjezz) - - Sokolov Evgeniy (ewgraf) + - Farhad Safarov (safarov) + - Roman Martinuk (a2a4) + - Alessandro Chitolina (alekitto) + - jwdeitch + - Jan Rosier (rosier) - Simon Berger - - Stiven Llupa (sllupa) - - Arman Hosseini (arman) + - George Mponos (gmponos) + - Ben Davies (bendavies) + - Romain Monteil (ker0x) + - Richard Shank (iampersistent) + - Jérôme Parmentier (lctrs) + - Vyacheslav Pavlov + - Sokolov Evgeniy (ewgraf) - Roland Franssen + - Matthieu Napoli (mnapoli) - Tomas Votruba (tomas_votruba) - - Vyacheslav Pavlov - - Ben Davies (bendavies) - - Tom Van Looy (tvlooy) - - Dawid Nowak - - Andréia Bohner (andreia) - Jérémy Derussé - - Albert Casademont (acasademont) - - Jérôme Parmentier (lctrs) - - Richard Shank (iampersistent) - Ahmed TAILOULOUTE (ahmedtai) - - Matthieu Napoli (mnapoli) - - George Mponos (gmponos) - - Antonio Pauletich (x-coder264) - - YaFou - - Jonathan Ingram - - Oleg Voronkovich - - Rouven Weßling (realityking) - - Wouter J + - Dawid Nowak + - Stiven Llupa (sllupa) + - Arman Hosseini (arman) + - Albert Casademont (acasademont) + - Andréia Bohner (andreia) + - Tom Van Looy (tvlooy) - Tyson Andre + - Sergey (upyx) + - GDIBass + - Olivier Dolbeau (odolbeau) + - Matthieu Ouellette-Vachon (maoueh) + - Gocha Ossinkine (ossinkine) + - Jesse Rushlow (geeshoe) + - wkania + - 77web + - Vincent Touzet (vincenttouzet) + - Jannik Zschiesche + - Jonathan Ingram + - Marco Pivetta (ocramius) - Amal Raghav (kertz) - - Guillaume (guill) + - Fabien Bourigault (fbourigault) + - Wouter J + - Rouven Weßling (realityking) - Alessandro Lai (jean85) - - Daniel Burger - Indra Gunawan (indragunawan) - - Marco Pivetta (ocramius) - - Gocha Ossinkine (ossinkine) - Philipp Wahala (hifi) - - Michał Pipa (michal.pipa) - - Olivier Dolbeau (odolbeau) - Clemens Tolboom - - Fabien Bourigault (fbourigault) - - Jannik Zschiesche - - Artur Kotyrba - - Romain Monteil (ker0x) - - 77web - - Alex Hofbauer (alexhofbauer) - - Jesse Rushlow (geeshoe) - - GDIBass - - Matthieu Ouellette-Vachon (maoueh) - - Sergey (upyx) - - Vincent Touzet (vincenttouzet) + - Daniel Burger + - Oleg Voronkovich + - Michał Pipa (michal.pipa) + - Antonio Pauletich (x-coder264) - Samuel NELA (snela) - - Warnar Boekkooi (boekkooi) + - Guillaume (guill) + - Alex Hofbauer (alexhofbauer) + - Artur Kotyrba + - YaFou + - Alan Poulain (alanpoulain) + - Andreas Möller (localheinz) + - zairig imad (zairigimad) + - Colin O'Dell (colinodell) + - Richard Miller + - Mario A. Alvarez Garcia (nomack84) + - Justin Hileman (bobthecow) + - Arnaud PETITPAS (apetitpa) + - Vincent AUBERT (vincent) - DQNEO + - Sébastien Alfaiate (seb33300) + - Thomas Rabaix (rande) - Victor Bocharsky (bocharsky_bw) - Aleksandar Jakovljevic (ajakov) - - zairig imad (zairigimad) - - Anthony GRASSIOT (antograssiot) - - Justin Hileman (bobthecow) - - Marko Kaznovac (kaznovac) - - Daniel Espendiller - - Chi-teck - Dmitrii Chekaliuk (lazyhammer) - - Mario A. Alvarez Garcia (nomack84) - - Dorian Villet (gnutix) + - Anthony GRASSIOT (antograssiot) + - Clément JOBEILI (dator) - Quynh Xuan Nguyen (seriquynh) - - Martin Hujer (martinhujer) - - Baptiste Leduc (korbeil) - - D (denderello) - - Larry Garfield (crell) + - James Halsall (jaitsu) + - Chi-teck - Michael Käfer (michael_kaefer) + - Marek Štípek (maryo) + - Nate Wiebe (natewiebe13) - Michael Voříšek - - Andreas Möller (localheinz) - - Alan Poulain (alanpoulain) + - Marko Kaznovac (kaznovac) + - Christian Scheb - Sergey Linnik (linniksa) - - Thomas Rabaix (rande) - - wkania - - Vincent AUBERT (vincent) - - Clément JOBEILI (dator) + - D (denderello) + - Martin Hujer (martinhujer) - Mikael Pajunen - - Sébastien Alfaiate (seb33300) - - Richard Miller - - Nate Wiebe (natewiebe13) - - Christian Scheb - - James Halsall (jaitsu) - - Marek Štípek (maryo) + - Quentin Devos - Asis Pattisahusiwa - - Colin O'Dell (colinodell) - - Arnaud PETITPAS (apetitpa) - - sun (sun) - - Loick Piera (pyrech) - - Denis Brumann (dbrumann) - - Martin Schuhfuß (usefulthink) + - Daniel Espendiller + - Larry Garfield (crell) + - Warnar Boekkooi (boekkooi) + - Baptiste Leduc (korbeil) + - Dorian Villet (gnutix) + - Karoly Gossler (connorhu) + - Stepan Anchugov (kix) + - Noel Guilbert (noel) + - Mathieu Lemoine (lemoinem) - Bram Leeda (bram123) - - mcfedr (mcfedr) - - Christian Schmidt - - Benjamin Dulau (dbenjamin) - - Andreas Hucks (meandmymonkey) - - Quentin Devos - - Giorgio Premi + - sun (sun) + - Bastien Jaillot (bastnic) - Markus Fasselt (digilist) + - Martin Schuhfuß (usefulthink) + - apetitpa - bronze1man - - Stadly - - Ruben Gonzalez (rubenrua) - - Patrick Landolt (scube) - - Remon van de Kamp + - Giorgio Premi + - Andre Rømcke (andrerom) - Leo Feyer - Guilliam Xavier - - Mathieu Lemoine (lemoinem) - - Stepan Anchugov (kix) - - Andre Rømcke (andrerom) - - apetitpa - - Nikolay Labinskiy (e-moe) - - Noel Guilbert (noel) - - Karoly Gossler (connorhu) + - Ruben Gonzalez (rubenrua) - Pierre Minnieur (pminnieur) - - Bastien Jaillot (bastnic) - Filippo Tessarotto (slamdunk) + - Loick Piera (pyrech) + - Nikolay Labinskiy (e-moe) + - Denis Brumann (dbrumann) + - Stadly + - Benjamin Dulau (dbenjamin) + - Remon van de Kamp + - mcfedr (mcfedr) - Timo Bakx (timobakx) - - Jan Sorgalla (jsor) - - Michele Orselli (orso) - - Jonathan H. Wage - - Maxime Veber (nek-) - - Mantis Development - - Edi Modrić (emodric) - - Jeroen Noten (jeroennoten) - - Oleg Andreyev (oleg.andreyev) + - Patrick Landolt (scube) + - Andreas Hucks (meandmymonkey) + - Christian Schmidt + - Arjen van der Meijden + - Dustin Whittle (dustinwhittle) - Priyadi Iman Nurcahyo (priyadi) - - Sven Paulus (subsven) - - Marcin Sikoń (marphi) - Julien Brochet - - Peter Kruithof (pkruithof) + - Valentine Boineau (valentineboineau) + - roman joly (eltharin) + - Marcin Sikoń (marphi) + - Leszek Prabucki (l3l0) - Yassine Guedidi (yguedidi) - - John Kary (johnkary) - - Marcel Beerta (mazen) - - François Pluchino (francoispluchino) - - Maciej Malarz (malarzm) - - Anderson Müller - - Dustin Whittle (dustinwhittle) + - Dmitrii Poddubnyi (karser) + - Rui Marinho (ruimarinho) + - jeff + - Maxime Veber (nek-) + - Thomas Lallement (raziel057) + - Hugo Monteiro (monteiro) + - Jan Sorgalla (jsor) + - Edi Modrić (emodric) - fd6130 (fdtvui) - - Evert Harmeling (evertharmeling) + - Võ Xuân Tiến (tienvx) + - Pascal Montoya + - Maciej Malarz (malarzm) + - François Pluchino (francoispluchino) + - Michele Orselli (orso) - Timothée Barray (tyx) + - Michael Lee (zerustech) + - Mantis Development + - Florian Lonqueu-Brochard (florianlb) + - henrikbjorn + - Sven Paulus (subsven) + - Anderson Müller - François Zaninotto (fzaninotto) - - Leszek Prabucki (l3l0) + - John Kary (johnkary) - Tristan Darricau (tristandsensio) - - Florian Lonqueu-Brochard (florianlb) - - Arjen van der Meijden - - Rui Marinho (ruimarinho) - - Pascal Montoya - - Võ Xuân Tiến (tienvx) + - Evert Harmeling (evertharmeling) + - Peter Kruithof (pkruithof) + - Marcel Beerta (mazen) - Joe Bennett (kralos) + - Oleg Andreyev (oleg.andreyev) - Wojciech Kania - - Hugo Monteiro (monteiro) - - Valentine Boineau (valentineboineau) - - jeff - - henrikbjorn - - Dmitrii Poddubnyi (karser) - - Thomas Lallement (raziel057) - - Michael Lee (zerustech) - Jérémie Augustin (jaugustin) - - Roman Ring (inori) - - Bob den Otter (bopp) - - Sullivan SENECHAL (soullivaneuh) - - David Badura (davidbadura) - - Thomas Adam - - Benoît Burnichon (bburnichon) - - Pierre-Yves Lebecq (pylebecq) - - Jurica Vlahoviček (vjurica) - - Iker Ibarguren (ikerib) - - Eugene Leonovich (rybakit) - - Patrick McDougle (patrick-mcdougle) - - Thomas Schulz (king2500) - - Marc Weistroff (futurecat) - - Arjen Brouwer (arjenjb) - - Michał (bambucha15) - - Danny Berger (dpb587) - - Matthieu Lempereur (mryamous) - - roman joly (eltharin) + - Jeroen Noten (jeroennoten) + - Jonathan H. Wage + - Adrian Rudnik (kreischweide) + - Daniel Gorgan - Michaël Perrin (michael.perrin) - - Romaric Drigon (romaricdrigon) - - Nikita Konstantinov (unkind) - - Dariusz Ruminski - - Xavier Montaña Carreras (xmontana) - - Rob Frawley 2nd (robfrawley) - - Philipp Cordes (corphi) - - Emanuele Panzeri (thepanz) - - Uwe Jäger (uwej711) - - Jordan Samouh (jordansamouh) - - GordonsLondon + - Arnt Gulbrandsen + - dFayet + - Michel Roca (mroca) - Chekote - - Alexander Kotynia (olden) + - javaDeveloperKid - Alif Rachmawadi - - Kyle - - Chris Smith (cs278) + - Tim Goudriaan (codedmonkey) + - Félix Labrecque (woodspire) + - Adam Prager (padam87) + - Hidde Wieringa (hiddewie) + - Eugene Leonovich (rybakit) - Benjamin Leveque (benji07) - - Joseph Rouff (rouffj) + - Zan Baldwin (zanbaldwin) + - Lynn van der Berg (kjarli) + - Romaric Drigon (romaricdrigon) + - Iker Ibarguren (ikerib) + - Arjen Brouwer (arjenjb) - Daniel Tschinder - - BoShurik - - Fabien S (bafs) - - Michel Roca (mroca) - maxime.steinhausser - - Renan (renanbr) + - Anton Chernikov (anton_ch1989) + - Benoît Burnichon (bburnichon) + - jdhoek - Elnur Abdurrakhimov (elnur) - - Francois Zaninotto - - Daniel Gorgan + - Emanuele Panzeri (thepanz) + - Roman Ring (inori) + - Philipp Cordes (corphi) + - Joseph Rouff (rouffj) + - Alexander Kotynia (olden) + - Sullivan SENECHAL (soullivaneuh) - Aurélien Pillevesse (aurelienpillevesse) - - Sylvain Fabre (sylfabre) - - Lynn van der Berg (kjarli) - - javaDeveloperKid - - Adam Prager (padam87) - - Zan Baldwin (zanbaldwin) - - Xavier Perez + - Kyle - Christian Schmidt + - Uwe Jäger (uwej711) + - Jurica Vlahoviček (vjurica) + - a.dmitryuk + - Marc Weistroff (futurecat) + - Nikita Konstantinov (unkind) + - Francois Zaninotto + - Michał (bambucha15) + - Danny Berger (dpb587) + - Patrick McDougle (patrick-mcdougle) + - Fabien S (bafs) - Manuel Reinhard (sprain) - - Hidde Wieringa (hiddewie) - - Anton Chernikov (anton_ch1989) - - Arnt Gulbrandsen - - Félix Labrecque (woodspire) - - jdhoek - - Tim Goudriaan (codedmonkey) - - Adrian Rudnik (kreischweide) - - dFayet + - Pierre-Yves Lebecq (pylebecq) + - David Badura (davidbadura) + - GordonsLondon + - BoShurik + - Xavier Perez + - Matthieu Lempereur (mryamous) + - Thomas Schulz (king2500) + - Rob Frawley 2nd (robfrawley) + - Chris Smith (cs278) + - Dariusz Ruminski + - Renan (renanbr) - Ray - - Thomas Tourlourat (armetiz) - - Frank de Jonge - - Blanchon Vincent (blanchonvincent) - - a.dmitryuk - - Alexandre Quercia (alquerci) - - Ivan Kurnosov - - Marc Morera (mmoreram) - - Damien Alexandre (damienalexandre) - - Bertrand Zuchuat (garfield-fr) - - Gabor Toth (tgabi333) - - Pavel Batanov (scaytrase) - - Marcos Sánchez - - jaugustin - - Francesc Rosàs (frosas) - - Jordane VASPARD (elementaire) - - Andrii Bodnar - - Andrey Esaulov (andremaha) - - Michael Holm (hollo) - - Beau Simensen (simensen) - - realmfoo + - Thomas Adam + - Bob den Otter (bopp) + - Jordan Samouh (jordansamouh) + - Sylvain Fabre (sylfabre) + - Xavier Montaña Carreras (xmontana) + - Lee Rowlands + - Wouter Van Hecke - Emmanuel BORGES - - Jerzy Zawadzki (jzawadzki) - - Mathieu Rochette (mathroc) - - Ben Hakim + - Dominique Bongiraud + - Michael Holm (hollo) + - Jack Worman (jworman) + - SiD (plbsid) - Manuel de Ruiter (manuel) - - schlndh - - Cédric Anne - - Pascal Luna (skalpa) - - Emanuele Gaspari (inmarelibero) - - Wouter Van Hecke - - Soner Sayakci - - Baptiste Lafontaine (magnetik) - - Andrew Moore (finewolf) - - Bohan Yang (brentybh) - - Jan Decavele (jandc) - - Pierre Ambroise (dotordu) - - Serkan Yildiz (srknyldz) - - Josip Kruslin (jkruslin) + - Alexey Kopytko (sanmai) - Robert Kiss (kepten) - - Maximilian Reichel (phramz) - - Florian Klein (docteurklein) - - Lee Rowlands - - Grégoire Passault (gregwar) - - Kim Hemsø Rasmussen (kimhemsoe) - - renanbr - - Sergey Belyshkin (sbelyshkin) - - Warxcell (warxcell) - - Wodor Wodorski - - Karoly Negyesi (chx) - - janschoenherr - - Magnus Nordlander (magnusnordlander) + - Marc Morera (mmoreram) + - Josip Kruslin (jkruslin) + - Francesc Rosàs (frosas) + - Pavel Batanov (scaytrase) - Thomas Bisignani (toma) - - Stepan Tanasiychuk (stfalcon) + - Wodor Wodorski + - rudy onfroy (ronfroy) + - Alexandre Quercia (alquerci) + - renanbr + - jaugustin + - Kim Hemsø Rasmussen (kimhemsoe) + - Blanchon Vincent (blanchonvincent) + - Bohan Yang (brentybh) + - Beau Simensen (simensen) + - Jan Decavele (jandc) + - Ivan Kurnosov + - Moshe Weitzman (weitzman) + - Andrii Bodnar + - Emanuele Gaspari (inmarelibero) + - Simon Podlipsky (simpod) + - Pascal Luna (skalpa) - Samaël Villette (samadu61) - - Dane Powell + - Alex Rock (pierstoval) + - Jerzy Zawadzki (jzawadzki) + - Sergey Belyshkin (sbelyshkin) + - Loïc Frémont (loic425) + - Maximilian Reichel (phramz) + - Dalibor Karlović + - Sebastien Morel (plopix) - Raul Fraile (raulfraile) - - Ismael Ambrosi (iambrosi) - Philippe SEGATORI (tigitz) - - Jack Worman (jworman) - - Gustavo Piltcher - - Moshe Weitzman (weitzman) - - Atsuhiro KUBO (iteman) - - Dominique Bongiraud - Joppe De Cuyper (joppedc) + - Karoly Negyesi (chx) + - Cédric Anne + - Serkan Yildiz (srknyldz) + - schlndh + - Craig Duncan (duncan3dc) - Marco Petersen (ocrampete16) - - Sebastien Morel (plopix) - - Alexey Kopytko (sanmai) - - SiD (plbsid) - - Sébastien Lavoie (lavoiesl) + - Andrey Lebedev (alebedev) + - Thomas Tourlourat (armetiz) + - Mathieu Rochette (mathroc) + - Stepan Tanasiychuk (stfalcon) - Christopher Davis (chrisguitarguy) - - Michael Hirschler (mvhirsch) + - Ben Hakim - Aurelijus Valeiša (aurelijus) - - Raphaël Geffroy (raphael-geffroy) - - Yoann RENARD (yrenard) - - Loïc Frémont (loic425) - - Craig Duncan (duncan3dc) - - Herberto Graca - - Vilius Grigaliūnas - - rudy onfroy (ronfroy) - - Christian Schmidt + - Michael Hirschler (mvhirsch) + - Magnus Nordlander (magnusnordlander) - Benjamin Morel + - Christian Schmidt + - realmfoo + - Frank de Jonge + - Link1515 + - Andrey Esaulov (andremaha) + - Soner Sayakci + - Jordane VASPARD (elementaire) - Manuel Kießling (manuelkiessling) - - Simon Podlipsky (simpod) + - Herberto Graca + - Warxcell (warxcell) + - Dane Powell + - Marcos Sánchez + - Yoann RENARD (yrenard) + - Grégoire Passault (gregwar) + - Damien Alexandre (damienalexandre) + - Gabor Toth (tgabi333) + - Pierre Ambroise (dotordu) + - Atsuhiro KUBO (iteman) - Tiago Ribeiro (fixe) - - Alex Rock (pierstoval) + - Bertrand Zuchuat (garfield-fr) + - Baptiste Lafontaine (magnetik) - Matthieu Auger (matthieuauger) - - Karel Souffriau - - Daniel STANCU - - Inal DJAFAR (inalgnu) - - Christophe L. (christophelau) - - Arthur de Moulins (4rthem) - - Kirill chEbba Chebunin - - Francesco Levorato - - Nicolas LEFEVRE (nicoweb) - - smoench - - Pol Dellaiera (drupol) + - Sébastien Lavoie (lavoiesl) + - Gustavo Piltcher + - Ismael Ambrosi (iambrosi) + - Florian Klein (docteurklein) + - janschoenherr + - Vilius Grigaliūnas + - Andrew Moore (finewolf) + - Raphaël Geffroy (raphael-geffroy) + - Thierry T (lepiaf) + - Vladyslav Loboda - Terje Bråten - - Roumen Damianoff - - Daniel Tschinder + - Yaroslav Kiliba + - Vitalii Ekert (comrade42) + - kor3k kor3k (kor3k) - Matthew Lewinski (lewinski) + - Hassan Amouhzi + - Erin Millard + - Arthur de Moulins (4rthem) + - Sanpi (sanpi) + - Nathanael Noblet (gnat) + - Shein Alexey + - Martin Herndl (herndlm) + - Pavel Volokitin (pvolok) + - Zmey + - Kirill chEbba Chebunin + - Yannick Ihmels (ihmels) + - Clara van Miert + - ShinDarth + - Stéphane PY (steph_py) + - hubert lecorche (hlecorche) + - Grenier Kévin (mcsky_biig) - Asmir Mustafic (goetas) - - Vitaliy Zakharov (zakharovvi) - - Tarmo Leppänen (tarlepp) + - Lorenz Schori + - Cătălin Dan (dancatalin) + - Philippe Segatori + - Maximilian Ruta (deltachaos) - Marek Kalnik (marekkalnik) - - Link1515 - - Shein Alexey + - vladimir.reznichenko + - Tarmo Leppänen (tarlepp) + - ivan + - Christophe L. (christophelau) + - Nicolas LEFEVRE (nicoweb) + - Oscar Cubo Medina (ocubom) + - James Gilliland (neclimdul) + - Albert Jessurum (ajessu) + - Harm van Tilborg (hvt) - Pablo Lozano (arkadis) + - Endre Fejes - Tobias Sjösten (tobiassjosten) - - Costin Bereveanu (schniper) - - Ivan Sarastov (isarastov) - - giulio de donato (liuggio) - - Jeremy Livingston (jeremylivingston) - - Gasan Guseynov (gassan) - - Clément Gautier (clementgautier) - - hossein zolfi (ocean) - - Vitalii Ekert (comrade42) - - Fabien Villepinte - - Gonzalo Vilaseca (gonzalovilaseca) - - flack (flack) - - Kristen Gilden - - SUMIDA, Ippei (ippey_s) - - Grenier Kévin (mcsky_biig) - - Eduardo Gulias (egulias) - - Ben Scott (bpscott) - - Alain Hippolyte (aloneh) - - Urinbayev Shakhobiddin (shokhaa) - - Hendrik Luup (hluup) - - Lorenz Schori - - Rhodri Pugh (rodnaph) + - Laszlo Korte + - Tobias Naumann (tna) + - Ricard Clau (ricardclau) + - BrokenSourceCode + - Jan Böhmer + - Artem (artemgenvald) + - siganushka (siganushka) + - Pol Dellaiera (drupol) + - Diego Agulló (aeoris) - Xavier HAUSHERR - Grzegorz (Greg) Zdanowski (kiler129) - - Dimitri Gritsajuk (ottaviano) - - Sanpi (sanpi) - - C (dagardner) - - Julien Galenski (ruian) - - Ahmed Raafat - - Kev - - hubert lecorche (hlecorche) - - Ricard Clau (ricardclau) - - Vincent Chalamon + - Fabien Villepinte + - Marc Morales Valldepérez (kuert) + - Karel Souffriau + - Alain Hippolyte (aloneh) + - Alessandro Desantis + - Roumen Damianoff + - Clément Gautier (clementgautier) + - Gasan Guseynov (gassan) - Marc Biorklund (mbiork) - - Pierre Rineau - Maksym Slesarenko (maksym_slesarenko) - - Valmonzo - - Felix Labrecque + - Costin Bereveanu (schniper) + - Urinbayev Shakhobiddin (shokhaa) + - Gyula Sallai (salla) + - Philipp Kräutli (pkraeutli) - Thomas Royer (cydonia7) - - Gwendolen Lynch - - Thomas Perez (scullwm) - - Yaroslav Kiliba - - Artem (artemgenvald) - - BrokenSourceCode - - Lukáš Holeczy (holicz) - - Yannick Ihmels (ihmels) - - Laszlo Korte - - Harm van Tilborg (hvt) - - Anthon Pang (robocoder) - - Thierry T (lepiaf) - - Martin Herndl (herndlm) - - Michele Locati - - Erin Millard - - Johann Pardanaud - - Marc Morales Valldepérez (kuert) - - Jakub Kucharovic (jkucharovic) - - Tobias Naumann (tna) - - Max Baldanza - - Daniel Beyer - - Hamza Makraz (makraz) - - Pavel Volokitin (pvolok) - - Issam Raouf (iraouf) - - Alex (aik099) - - Vyacheslav Salakhutdinov (megazoll) - - ShinDarth - - Joe Lencioni - - vladimir.reznichenko - - Greg Thornton (xdissent) - - Jan Böhmer - - ivan - - Diego Agulló (aeoris) - - Philipp Kräutli (pkraeutli) - - Zmey - - Philippe Segatori - - Alex Bowers - - James Gilliland (neclimdul) + - Eric Masoero (eric-masoero) - Ivan Mezinov - - Islam Israfilov (islam93) - Thibaut Cheymol (tcheymol) + - Alex (aik099) + - Inal DJAFAR (inalgnu) + - Hamza Makraz (makraz) + - C (dagardner) - Kieran Brahney - - Stéphane PY (steph_py) - - Vadim Kharitonov (vadim) - - Albert Jessurum (ajessu) - - Hassan Amouhzi + - Ilija Tovilo (ilijatovilo) + - Hendrik Luup (hluup) + - Jeremy Livingston (jeremylivingston) + - Eduardo Gulias (egulias) - FORT Pierre-Louis (plfort) - - Oscar Cubo Medina (ocubom) - - Endre Fejes - - Kai - - Haralan Dobrev (hkdobrev) - - Gyula Sallai (salla) - - Dalibor Karlović - - Pavel Kirpitsov (pavel-kirpichyov) - - Eric Masoero (eric-masoero) + - SUMIDA, Ippei (ippey_s) + - Gonzalo Vilaseca (gonzalovilaseca) + - Vadim Kharitonov (vadim) + - Ivan Sarastov (isarastov) + - Raffaele Carelle - mondrake (mondrake) - - Cătălin Dan (dancatalin) - - Mateusz Sip (mateusz_sip) - - kor3k kor3k (kor3k) - - Nathanael Noblet (gnat) + - Max Baldanza + - Issam Raouf (iraouf) + - Daniel Beyer + - Kevin van Sonsbeek (kevin_van_sonsbeek) + - Pavel Kirpitsov (pavel-kirpichyov) + - Thomas Perez (scullwm) + - flack (flack) + - Francesco Levorato + - Robbert Klarenbeek (robbertkl) + - Valmonzo - Dmytro Borysovskyi (dmytr0) - - Clara van Miert - - Vladyslav Loboda - - Alessandro Desantis + - Lukáš Holeczy (holicz) + - Islam Israfilov (islam93) + - Vitaliy Zakharov (zakharovvi) - Matthias Althaus (althaus) - - Robbert Klarenbeek (robbertkl) - - Raffaele Carelle - - Arnaud POINTET (oipnet) - - Adam Harvey - - Brian King - - AKeeman (akeeman) - - Arnaud De Abreu (arnaud-deabreu) + - smoench + - hossein zolfi (ocean) + - Johann Pardanaud + - Daniel Tschinder + - Kristen Gilden + - Daniel STANCU + - Kev + - Joe Lencioni + - Ben Scott (bpscott) + - Anthon Pang (robocoder) + - Mateusz Sip (mateusz_sip) + - Vincent Chalamon + - Ahmed Raafat + - Pierre Rineau + - Haralan Dobrev (hkdobrev) + - Greg Thornton (xdissent) + - Julien Galenski (ruian) + - Alex Bowers + - Gwendolen Lynch + - Kai + - giulio de donato (liuggio) + - Vyacheslav Salakhutdinov (megazoll) + - Michele Locati + - Jakub Kucharovic (jkucharovic) + - Dimitri Gritsajuk (ottaviano) + - Felix Labrecque + - Rhodri Pugh (rodnaph) + - Eduardo Oliveira (entering) + - Sam Fleming (sam_fleming) + - Lenard Palko + - sasezaki + - Andrey Astakhov (aast) + - Matthias Krauser (mkrauser) + - Jeroen Thora (bolle) - Axel Guckelsberger (guite) - - Stefan Kruppa - - Ioan Negulescu - - Dries Vints - - Claude Khedhiri (ck-developer) - - Dennis Fridrich (dfridrich) - - Vicent Soria Durá (vicentgodella) - - Anton Bakai - - Marcos Rezende (rezende79) + - Piotr Kugla (piku235) + - Andrew M-Y (andr) - Andrew Udvare (audvare) - - Ivan Nikolaev (destillat) - - Miro Michalicka - - Denis Kulichkin (onexhovia) - - Oleksiy (alexndlm) - - Kevin van Sonsbeek (kevin_van_sonsbeek) - - Boris Vujicic (boris.vujicic) - - Berny Cantos (xphere81) - - Loïc Faugeron - - Toni Rudolf (toooni) - - Krasimir Bosilkov (kbosilkov) - - Jaik Dean (jaikdean) - - Marvin Feldmann (breyndotechse) - - Petr Duda (petrduda) - - Marcin Michalski (marcinmichalski) - - Dariusz Ruminski - - Joachim Løvgaard (loevgaard) - - Alireza Mirsepassi (alirezamirsepassi) - - Zach Badgett (zachbadgett) - - DerManoMann - - Oleksii Zhurbytskyi - - kylekatarnls (kylekatarnls) - - Matthew Grasmick - - Alexandru Furculita (afurculita) - - Andy Palmer (andyexeter) - - Daniel Tiringer - - Guilherme Ferreira - - Artem Stepin (astepin) - - Patrick Reimers (preimers) - - Steven Surowiec (steves) - - mcben - - Forfarle (forfarle) - - Fabian Lange (codingfabian) - - Kevin McBride - - Markus Lanthaler (lanthaler) - - Maximilian Ruta (deltachaos) - - Sander Toonen (xatoo) - - Gijs van Lammeren - - Bahman Mehrdad (bahman) - - Stefan Gehrig (sgehrig) - - Jan van Thoor (janvt) - - Shakhobiddin - - William Arslett (warslett) - - Pavel Popov (metaer) - - Vitaliy Tverdokhlib (vitaliytv) - - Thomas Talbot (ioni) + - Remi Collet + - Jiří Bok + - BENOIT POLASZEK (bpolaszek) + - Erik Trapman + - boombatower + - Chris Sedlmayr (catchamonkey) + - Ioan Negulescu + - Nils Adermann (naderman) + - Jakub Škvára (jskvara) - Arturs Vonda - - Scott Arciszewski - - Ziumin - - Nicolas Dewez (nicolas_dewez) - - Jonas Elfering - - Tobias Weichart - - Filip Procházka (fprochazka) - - Andrey Astakhov (aast) + - Rodrigo Borrego Bernabé (rodrigobb) + - Alex Bakhturin - Joshua Nye - - Miroslav Šustek (sustmi) - - Tom Klingenberg - - Jérémy REYNAUD (babeuloula) - - Emanuele Iannone - - Erik Trapman - - Romain Gautier (mykiwi) - - Maelan LE BORGNE - - Piotr Kugla (piku235) + - Mathias STRASSER (roukmoute) + - Markus S. (staabm) + - Krasimir Bosilkov (kbosilkov) - Yi-Jyun Pan - Leevi Graham (leevigraham) - - tim - - Arkadius Stefanski (arkadius) + - Koen Reiniers (koenre) + - Stefan Gehrig (sgehrig) - Geoffrey Tran (geoff) - - Krzysztof Piasecki (krzysztek) - - Markus Bachmann (baachi) - - Maxim Dovydenok (dovydenok-maxim) - - Jérôme Vieilledent (lolautruche) - - Steven RENAUX (steven_renaux) - - Ivan Rey (ivanrey) - - Jérôme Macias (jeromemacias) - - simon chrzanowski (simonch) - - Gábor Fási - - Mark Challoner (markchalloner) - - Jérémy DECOOL (jdecool) - - Jeroen Thora (bolle) - - Faizan Akram Dar (faizanakram) + - Giso Stallenberg (gisostallenberg) + - Ahmed Ghanem (ahmedghanem00) + - M. (mbontemps) + - Maximilian Zumbansen + - Philipp Rieber (bicpi) + - Gawain Lynch (gawain) + - Miro Michalicka + - Wu (wu-agriconomie) - Evan S Kaufman (evanskaufman) - - Remi Collet - - Michel Salib (michelsalib) - - Jiří Bok - - mamazu - - Laurent Masforné (heisenberg) - - boombatower - - Ricardo Oliveira (ricardolotr) - - Chris Tanaskoski (devristo) - - Grummfy (grummfy) - - Norbert Orzechowicz (norzechowicz) - - Steffen Roßkamp - - BENOIT POLASZEK (bpolaszek) - - Jonas Flodén (flojon) - - Korvin Szanto - Ryan - - Benjamin Georgeault (wedgesama) - - Alex Bakhturin - - Erik Saunier (snickers) - - Sebastian Bergmann - - Dmitriy Mamontov (mamontovdmitriy) - - Andrey Lebedev (alebedev) - PatNowak - - nikos.sotiropoulos - - Vlad Gregurco (vgregurco) - - Klaus Silveira (klaussilveira) - - Nils Adermann (naderman) - - Jakub Škvára (jskvara) - - Jan Ole Behrens (deegital) - - Rob Bast - - quentin neyrat (qneyrat) - - Ahmed Ghanem (ahmedghanem00) - - Sergio Santoro - - Pablo Díez (pablodip) - - Nathan Dench (ndenc2) - - Angelov Dejan (angelov) - - AnneKir - - Ilija Tovilo (ilijatovilo) - - Kurt Thiemann - - Matthew Smeets - - Benjamin Cremer (bcremer) - - Robert-Jan de Dreu - - Benjamin (yzalis) - - siganushka (siganushka) - - Jérémy M (th3mouk) + - Adam Szaraniec + - Quentin Dequippe (qdequippe) + - Markus Bachmann (baachi) + - Denis Kulichkin (onexhovia) + - Jérémy DECOOL (jdecool) + - Tom Klingenberg + - Benoit Galati (benoitgalati) + - geoffrey + - Jérôme Vieilledent (lolautruche) + - Sergio Santoro + - Shakhobiddin + - Vadim Borodavko (javer) + - Anton Bakai + - Roman Anasal + - Soufian EZ ZANTAR (soezz) + - Niklas Fiekas + - Marcos Rezende (rezende79) + - Markus Lanthaler (lanthaler) + - Jan van Thoor (janvt) + - Benjamin Zaslavsky (tiriel) + - Marcin Chyłek (songoq) + - mcben - Dawid Pakuła (zulusx) - - Barry vd. Heuvel (barryvdh) - - Neil Peyssard (nepey) - - Fabrice Bernhard (fabriceb) - - Gawain Lynch (gawain) - - Mokhtar Tlili (sf-djuba) - - Ariel Ferrandini (aferrandini) - - Marek Zajac - - vagrant - - Maxime Pinot (maximepinot) + - Nicolas Dewez (nicolas_dewez) + - Tri Pham (phamuyentri) + - lenar + - tim - Xavier HAUSHERR - - Philipp Rieber (bicpi) - - Alexander Deruwe (aderuwe) - - Nate (frickenate) - - Martin Morávek (keeo) - - lancergr - - Zbigniew Malcherczyk (ferror) - - Dirk Pahl (dirkaholic) - - Bernd Stellwag - - Mohammad Emran Hasan (phpfour) - - Matheo Daninos (mathdns) - - Shawn Iwinski - - Matthias Krauser (mkrauser) - - Chris Sedlmayr (catchamonkey) - - Anthony Ferrara - - Denis Gorbachev (starfall) - - Johan Vlaar (johjohan) - - Dave Hulbert (dave1010) + - Robert-Jan de Dreu - NickSdot - - W0rma + - Arkadius Stefanski (arkadius) + - Marvin Feldmann (breyndotechse) + - Sander Toonen (xatoo) + - Angelov Dejan (angelov) + - Klaus Silveira (klaussilveira) + - Maxime Pinot (maximepinot) + - Webnet team (webnet) - Martin Kirilov (wucdbm) - - Florian Merle (florian-merle) - - Koen Reiniers (koenre) - - Jonathan Johnson (jrjohnson) - - Martijn Cuppens - - M. (mbontemps) - - Markus S. (staabm) - - Andrii Dembitskyi - - Vadim Borodavko (javer) - - Asier Illarramendi (doup) - - Pavel Campr (pcampr) - - battye - - Christian Gripp (core23) - - Benjamin Zaslavsky (tiriel) - - Judicaël RUFFIEUX (axanagor) - - Roy Van Ginneken (rvanginneken) + - Johan Vlaar (johjohan) + - Daniel Tiringer + - Bahman Mehrdad (bahman) + - nathanpage + - John Bafford (jbafford) + - Norbert Orzechowicz (norzechowicz) + - Claude Khedhiri (ck-developer) + - William Arslett (warslett) + - Dries Vints + - Jérôme Macias (jeromemacias) + - Lescot Edouard (idetox) + - Andreas Hennings + - Benjamin Georgeault (wedgesama) + - Roberto Espinoza (respinoza) + - Fabrice Bernhard (fabriceb) + - Benjamin (yzalis) + - Tobias Weichart - Bhavinkumar Nakrani (bhavin4u) + - Johnny Robeson (johnny) + - nikos.sotiropoulos - Matthijs van den Bos (matthijs) - - Webnet team (webnet) - - Nicolas Rigaud - - Ioan Ovidiu Enache (ionutenache) - - Samuele Lilli (doncallisto) - - Brayden Williams (redstar504) - - Gigino Chianese (sajito) - - Andreas Hennings - - De Cock Xavier (xdecock) - - Quentin Schuler (sukei) - - Belhassen Bouchoucha (crownbackend) - - Michael Moravec - - Anatoly Pashin (b1rdex) + - Petr Duda (petrduda) + - Jonas Elfering + - Shawn Iwinski + - Ariel Ferrandini (aferrandini) + - quentin neyrat (qneyrat) + - M. Vondano + - Alexandru Furculita (afurculita) + - Filip Procházka (fprochazka) + - Jeanmonod David (jeanmonod) + - Jan Schumann + - Zach Badgett (zachbadgett) + - Nate (frickenate) + - Kamil Kokot (pamil) - Matthieu Bontemps - - geoffrey - - Desjardins Jérôme (jewome62) - - Maximilian Zumbansen - - Chad Sikorra (chadsikorra) - - Mathias STRASSER (roukmoute) - - Trent Steel (trsteel88) - - ReenExe - - Antonin CLAUZIER (0x346e3730) - - Ben Ramsey (ramsey) - - Hans Mackowiak - - Ben Roberts (benr77) + - Yoshio HANAWA + - Chris Tanaskoski (devristo) + - Marek Zajac + - Matthew Smeets + - Michel Salib (michelsalib) - François Dume (franek) - - Christoph Mewes (xrstf) - - Jannik Zschiesche - - Niklas Fiekas - - Erkhembayar Gantulga (erheme318) - - Greg ORIOL - - Jerzy Lekowski (jlekowski) - - Jérôme Tanghe (deuchnord) - - Raulnet - - Disquedur - - PHAS Developer - - Adam Szaraniec - - Maarten de Boer (mdeboer) - - mmokhi - Kevin Saliou (kbsali) - - Roberto Espinoza (respinoza) - - Nadim AL ABDOU (nadim) - - Kamil Kokot (pamil) - - Tobias Bönner - - Greg Anderson - - Soufian EZ ZANTAR (soezz) - - Lenard Palko - - Gildas Quéméner (gquemener) - - Luc Vieillescazes (iamluc) - - Sam Fleming (sam_fleming) - - Ned Schwartz + - Michael Moravec + - DerManoMann + - Peter Bowyer (pbowyer) + - Florian Merle (florian-merle) + - mmokhi + - Maarten de Boer (mdeboer) + - Asier Illarramendi (doup) + - Mark Challoner (markchalloner) + - ReenExe + - Toni Rudolf (toooni) - Sergey Melesh (sergex) + - Krzysztof Piasecki (krzysztek) + - Oleksii Zhurbytskyi + - AnneKir + - Pavel Popov (metaer) + - Arnaud POINTET (oipnet) + - Matheo Daninos (mathdns) + - Judicaël RUFFIEUX (axanagor) + - Roy Van Ginneken (rvanginneken) + - Berny Cantos (xphere81) + - Pablo Díez (pablodip) - Gunnstein Lye (glye) - - Jeanmonod David (jeanmonod) + - Anthony Ferrara + - Anatoly Pashin (b1rdex) + - Sergey Panteleev + - Jan Nedbal + - Dariusz Ruminski + - Romain Gautier (mykiwi) + - Alireza Mirsepassi (alirezamirsepassi) + - vagrant + - Antonio Jose Cerezo (ajcerezo) + - Gábor Fási + - Damien Fernandes + - battye + - Jonathan Johnson (jrjohnson) + - Gigino Chianese (sajito) + - Maelan LE BORGNE + - R. Achmad Dadang Nur Hidayanto (dadangnh) - Aurélien Fredouelle - - Florian Rey (nervo) - - Giso Stallenberg (gisostallenberg) - - Johnny Robeson (johnny) + - Antonin CLAUZIER (0x346e3730) + - Barry vd. Heuvel (barryvdh) - Marcin Szepczynski (czepol) - - sasezaki - - Cédric Lombardot (cedriclombardot) - - Andrew M-Y (andr) - - Marcin Chyłek (songoq) - - Quentin Dequippe (qdequippe) - - BASAK Semih (itsemih) + - Dave Hulbert (dave1010) + - Adam Harvey + - Gijs van Lammeren + - Faizan Akram Dar (faizanakram) - Bilge - - Benoit Galati (benoitgalati) - - Rodrigo Borrego Bernabé (rodrigobb) - - John Bafford (jbafford) - - lenar - - Roman Anasal + - Jerzy Lekowski (jlekowski) + - Arnaud De Abreu (arnaud-deabreu) + - Ivan Rey (ivanrey) + - Jérôme Tanghe (deuchnord) + - Brayden Williams (redstar504) + - Ziumin + - Patrick Reimers (preimers) + - Mokhtar Tlili (sf-djuba) + - Belhassen Bouchoucha (crownbackend) - Petrisor Ciprian Daniel - - Valentin Jonovs - - Jacek Jędrzejewski (jacek.jedrzejewski) - - M. Vondano - - Eduardo Oliveira (entering) - - Sergey Panteleev - - Jan Schumann - - Tri Pham (phamuyentri) - - R. Achmad Dadang Nur Hidayanto (dadangnh) - - Yoshio HANAWA - - Eugene Wissner + - De Cock Xavier (xdecock) - ilyes kooli (skafandri) - - Markus Staab - - Restless-ET - - Tavo Nieves J (tavoniievez) - - Peter Bowyer (pbowyer) - - Lescot Edouard (idetox) - - Dominik Zogg - - Antonio Jose Cerezo (ajcerezo) - - Paul Kamer (pkamer) - - Andrew Codispoti - - Nykopol (nykopol) - - vitaliytv - - Julien DIDIER (juliendidier) - - Kien Nguyen - - Adrien Jourdier (eclairia) - - Jan Kramer - - Adrien Wilmet (adrienfr) - - Douglas Hammond (wizhippo) - - Tim Düsterhus - - Guillaume Verstraete - - Baptiste CONTRERAS - - Sofiane HADDAG (sofhad) - - Thomas Durand - - StefanoTarditi - - 243083df - - Petar Obradović - - Stephan Vierkant (svierkant) - - Benoît Merlet (trompette) - - Rootie - - Zhuravlev Alexander (scif) - - Brad Jones - - Florent Viel (luxifer) - - Thijs-jan Veldhuizen (tjveldhuizen) - - Barney Hanlon - - Krystian Marcisz (simivar) + - Jaik Dean (jaikdean) + - Trent Steel (trsteel88) + - Quentin Schuler (sukei) + - Erkhembayar Gantulga (erheme318) + - Nicolas Rigaud + - Artem Stepin (astepin) + - Vicent Soria Durá (vicentgodella) + - Jérémy M (th3mouk) + - Neil Peyssard (nepey) + - Jérémy REYNAUD (babeuloula) + - kylekatarnls (kylekatarnls) + - Loïc Faugeron + - Martin Morávek (keeo) + - Laurent Masforné (heisenberg) + - Kurt Thiemann + - Ioan Ovidiu Enache (ionutenache) + - W0rma + - Eugene Wissner + - BASAK Semih (itsemih) + - Luc Vieillescazes (iamluc) + - Jonas Flodén (flojon) + - Forfarle (forfarle) + - Sebastian Bergmann + - Emanuele Iannone + - Brian King + - Dominik Zogg + - Jacek Jędrzejewski (jacek.jedrzejewski) + - Ned Schwartz + - Ben Roberts (benr77) + - mamazu + - Andrii Dembitskyi + - Martijn Cuppens + - Christoph Mewes (xrstf) + - Benjamin Cremer (bcremer) + - Andrii Dembitskyi + - Pavel Campr (pcampr) + - Marcin Michalski (marcinmichalski) + - Maxim Dovydenok (dovydenok-maxim) + - Tavo Nieves J (tavoniievez) + - simon chrzanowski (simonch) + - Boris Vujicic (boris.vujicic) + - Florent Destremau (florentdestremau) + - Oleksiy (alexndlm) + - Thomas Talbot (ioni) + - Scott Arciszewski + - AKeeman (akeeman) + - Rob Bast + - Grummfy (grummfy) + - Stefan Kruppa + - Ricardo Oliveira (ricardolotr) + - Nadim AL ABDOU (nadim) + - Mohammad Emran Hasan (phpfour) + - Steffen Roßkamp + - Matthew Grasmick + - Bernd Stellwag + - Ivan Nikolaev (destillat) + - Cédric Lombardot (cedriclombardot) + - Fabian Lange (codingfabian) + - Gildas Quéméner (gquemener) + - Ben Ramsey (ramsey) + - Dirk Pahl (dirkaholic) + - PHAS Developer + - Tobias Bönner + - Florian Rey (nervo) + - Kevin McBride + - Vlad Gregurco (vgregurco) + - Greg ORIOL + - Dennis Fridrich (dfridrich) + - Steven RENAUX (steven_renaux) + - Miroslav Šustek (sustmi) + - Erik Saunier (snickers) + - Desjardins Jérôme (jewome62) + - lancergr + - Disquedur + - Zbigniew Malcherczyk (ferror) + - Denis Gorbachev (starfall) + - Dmitriy Mamontov (mamontovdmitriy) + - Hans Mackowiak + - Christian Gripp (core23) + - Jan Ole Behrens (deegital) + - Guilherme Ferreira + - Chad Sikorra (chadsikorra) + - Steven Surowiec (steves) + - Restless-ET + - Andy Palmer (andyexeter) + - Korvin Szanto + - Jannik Zschiesche + - Markus Staab + - Alexander Deruwe (aderuwe) + - Vitaliy Tverdokhlib (vitaliytv) + - Nathan Dench (ndenc2) + - Greg Anderson + - Samuele Lilli (doncallisto) + - Valentin Jonovs + - Raulnet + - Joachim Løvgaard (loevgaard) + - Andrew Neil Forster (krciga22) + - Dmitrii Tarasov (dtarasov) + - Roy de Vos Burchart + - Kristof Van Cauwenbergh (kristofvc) + - Jaroslav Kuba + - Xav` (xavismeh) - Jeremiasz Major - - Michael Roterman (wtfzdotnet) - - Matt Janssen - - fzerorubigd - - Andreas Leathley (iquito) - - Mohamed Gamal - - arai - - hugovms - - Maksim Muruev - - Sébastien Santoro (dereckson) - - Johnson Page (jwpage) - - ToshY - - Thibaut THOUEMENT (thibaut_thouement) - - Renan Rodrigo - - Richard Quadling - - Baptiste Meyer (meyerbaptiste) - - datibbaw - - Gennadi Janzen - - Youssef Benhssaien (moghreb) - - Sébastien Despont (bouillou) - - Jan Walther (janwalther) - - Robert Gruendler (pulse00) - - Christian Soronellas (theunic) - - Patrick Dawkins (pjcdawkins) - - Sergey Zolotov (enleur) - - Kuba Werłos (kuba) - - Loïc Ovigne (oviglo) - - Aurimas Niekis (gcds) - - Bozhidar Hristov - - Patrick Allaert - - Tomasz Ignatiuk - - Jonas Elfering - - Carlos Buenosvinos (carlosbuenosvinos) - - Ruben Gonzalez (rubenruateltek) - - Cyril Pascal (paxal) - - Ian Jenkins (jenkoian) - - Mickaël Andrieu (mickaelandrieu) - - Anton A. Sumin - - Konstantin Grachev (grachevko) - - Jérôme Tamarelle (jtamarelle-prismamedia) - - Mátyás Somfai (smatyas) - - Jean Pasdeloup - - mfettig - - Jörn Lang - - vladimir.panivko - - Gert Wijnalda (cinamo) - - Michiel Boeckaert (milio) + - Stephan Vierkant (svierkant) + - Jesper Noordsij - Kieran - - VJ - - Ricky Su (ricky) - - Mark Schmale (masch) - - Toni Peric (tperic) - - Fabien Salles (blacked) - - Ana Raro - - Xav` (xavismeh) - - Florian Hermann (fhermann) - - Aleksandr Volochnev (exelenz) - - Johnny Peck (johnnypeck) - - “Filip - - Arjan Keeman - - Alexander Miehe - - Adrien Lucas (adrienlucas) - - Thomas Ploch - - izzyp + - louismariegaborit + - Michael Piecko (michael.piecko) + - Dennis Hotson + - Jeroen Fiege (fieg) + - Tomasz Ignatiuk + - Rostyslav Kinash + - Javier López (loalf) + - Renan Gonçalves (renan_saddam) + - Vladimir Luchaninov (luchaninov) + - Alex Bogomazov (alebo) + - katario + - bogdan + - wuchen90 + - Jay Klehr + - Pierre Vanliefland (pvanliefland) + - Andrei C. (moldman) + - Gábor Tóth + - Fred Cox + - Maksim Muruev + - Kyle Evans (kevans91) + - Pierre-Yves Landuré (biapy) - Roy Klutman (royklutman) - - Christian Stoller (naitsirch) - - Alaattin Kahramanlar (alaattin) - - Mantas Var (mvar) - - Jawira Portugal (jawira) - - Degory Valentine - - Mihai Stancu - - Jiri Barous + - Gennadi Janzen + - Stephan Vock (glaubinix) + - Henry Snoek (snoek09) + - Mohamed Gamal + - Geoffrey Brier (geoffrey-brier) + - Xavier Briand (xavierbriand) - Sherin Bloemendaal - - Paweł Niedzielski (steveb) - - Jesper Noordsij - - Steve Grunwell - - Calin Mihai Pristavu - - Kieran Cross (kilosierracharlie) - - Arun Philip - - DT Inier (gam6itko) - - Ondrej Exner - - Gert de Pagter - - Denis Zunke (donalberto) - - Noémi Salaün (noemi-salaun) - - Carson Full (carsonfull) - James Hemery - - Behnoush Norouzali (behnoush) - - Simon Heimberg (simon_heimberg) - - Edvin Hultberg - - Casper Valdemar Poulsen + - Sébastien JEAN (sebastien76) + - acoulton + - Ruben Gonzalez (rubenruateltek) + - Nicolas de Marqué (nicola) + - Sascha Grossenbacher (berdir) + - Arno Geurts + - Yuriy Vilks (igrizzli) + - zenas1210 + - wicliff wolda (wickedone) + - Bastien DURAND (deamon) + - Adrien Roches (neirda24) + - Kay Wei + - Carl Casbolt (carlcasbolt) + - Lctrs + - andrey1s + - Richard Henkenjohann (richardhj) - Tomasz Kusy - - Guillaume Aveline - - Kristijan Kanalaš (kristijan_kanalas_infostud) - - Masterklavi - - radar3301 - - Mior Muhammad Zaki (crynobone) - - Evan Shaw - - Asier Etxebeste - - Adam - - Carlos Quintana - - Maxime COLIN (maximecolin) - - Pavol Tuka - - Julien Fredon - - Bastien DURAND (deamon) - - Sinan Eldem (sineld) - - Guilherme Augusto Henschel - - zenmate - - Sebastian Marek (proofek) - - Gábor Tóth + - Kevin (oxfouzer) + - mfettig + - Jayson Xu (superjavason) + - Arun Philip + - Gabrielle Langer - Lars Vierbergen (vierbergenlars) - - Sébastien JEAN (sebastien76) - - Tarjei Huse (tarjei) - - Simon DELICATA - - phpner - - den - - Maximilian Bösing - - Jacques MOATI (jmoati) - - Philipp Scheit (pscheit) - - Pierre Hennequart - - Kyle Evans (kevans91) - - Luca Saba (lucasaba) - - Ivan Kurnosov - - Hany el-Kerdany - - Francis Turmel (fturmel) - - Yi-Jyun Pan - - Andrii Dembitskyi - - Paulo Ribeiro (paulo) - - Glodzienski - - Nicolas Dousson - - Toon Verwerft (veewee) - - Martins Sipenko - - fago - - Oliver Hader - - Ilia (aliance) - - ornicar - - Sascha Grossenbacher (berdir) - - Oriol Viñals - - Ben - - Jose Gonzalez - - Thibault Buathier (gwemox) - - Ahmed Ashraf (ahmedash95) - - Rimas Kudelis - - ywisax - - alexpozzi - - Dave Marshall (davedevelopment) - - Tony Tran - - Grégoire Penverne (gpenverne) - - Josiah (josiah) - - RJ Garcia - Jake (jakesoft) - - Nicole Cordes (ichhabrecht) - - Fabian Vogler (fabian) - - Morten Wulff (wulff) - - Emil Masiakowski - - Ворожцов Максим (myks92) - - Rafał Wrzeszcz (rafalwrzeszcz) - - sl_toto (sl_toto) - - Richard Henkenjohann (richardhj) - - Andreas Lutro (anlutro) + - Bastien THOMAS + - Xavier Lacot (xavier) + - Ke WANG (yktd26) - Simon Terrien (sterrien) - - DUPUCH (bdupuch) - - Manuel Alejandro Paz Cetina - - Reyo Stallenberg (reyostallenberg) - - Robin Lehrmann - - Cyril Quintin (cyqui) - - Alexander Li (aweelex) - - Ivan Grigoriev (greedyivan) - - Marcos Gómez Vilches (markitosgv) - - Sebastian Paczkowski (sebpacz) - - Julien Tattevin (jutattevin) - - Trevor North - - Benjamin Lebon - - Stefano Degenkamp (steef) - - Kay Wei - - stlrnz - - James Hudson (mrthehud) - - Jeroen van den Enden (endroid) - - Matt Robinson (inanimatt) - - Gálik Pál - - Shin Ohno (ganchiku) - - Jesper Noordsij - - Andrii Popov (andrii-popov) - - Christin Gruber (christingruber) - - Johann Saunier (prophet777) - - Brunet Laurent (lbrunet) - - Loïc Chardonnet - - Mark Sonnabaum - - Ivan Menshykov - - Nico Haase - - Luis Tacón (lutacon) - - Roberto Nygaard - - Jean-Baptiste GOMOND (mjbgo) - - Mikhail Yurasov (mym) - - Kagan Balga (kagan-balga) - - Carl Casbolt (carlcasbolt) - - David Fuhr - - frost-nzcr4 - - Benoît Bourgeois (bierdok) - - Gustavo Falco (gfalco) - - nathanpage - - Stéphane Escandell (sescandell) - - Quentin de Longraye (quentinus95) - - Matthieu Mota (matthieumota) - - Arnaud Frézet - - Evan Villemez - - Sofien Naas - - Antal Áron (antalaron) - - Quentin Dreyer (qkdreyer) - - Matthew Davis (mdavis1982) - - Gladhon - - Simo Heinonen (simoheinonen) - - Matthieu Calie (matth--) - - Thorry84 - - Daisuke Ohata - - avorobiev - - Roland Franssen :) - - Roy de Vos Burchart - - Loïc Beurlet - - Michael Lutz - - umpirski - - Franck RANAIVO-HARISOA (franckranaivo) - - Vincent CHALAMON - - Paweł Wacławczyk (pwc) - - John Bohn (jbohn) - - COMBROUSE Dimitri - - kick-the-bucket + - sl_toto (sl_toto) - Sem Schidler (xvilo) + - Grinbergs Reinis (shima5) - Malte Blättermann - - wicliff wolda (wickedone) - - Florent Destremau (florentdestremau) - - MrMicky - - Gabrielle Langer - - SpacePossum - - Thomas Trautner (thomastr) - - Mario Ramundo (rammar) - - Ke WANG (yktd26) - - Hossein Bukhamsin - - Jakub Kulhan (jakubkulhan) - - Cameron Porter - - skmedix (skmedix) - - Stéphane Delprat - - Eric COURTIAL - Marc Abramowitz - - Tamás Nagy (t-bond) - - Delf Tonder (leberknecht) - - Dmitry Parnas (parnas) - - Ana Raro - - Robert Fischer (sandoba) - - Marek Pietrzak (mheki) - - Florian Wolfsjaeger (flowolf) - - Vladimir Varlamov (iamvar) - - Jonatan Männchen - - Dennis Hotson - - alexandre.lassauge - - Pierre Vanliefland (pvanliefland) - - bogdan - - acoulton - - johan Vlaar - - Yosmany Garcia (yosmanyga) - - Gina Peter Banyard + - Gennady Telegin + - Ivan + - Pierre Hennequart + - Ettore Del Negro (ettoredn) + - Alexander Kim + - Guilherme Augusto Henschel + - Matthew Davis (mdavis1982) + - Dragos Protung (dragosprotung) + - Balazs Csaba - Maxim Tugaev (tugmaks) - - Oriol Viñals - - Emil Einarsson - - Randy Geraads - - NanoSector - - Lukas Mencl - - Besnik Br - - Jason Tan (jt2k) - - Philipp Keck - - Ondrej Machulda (ondram) - - Jon Gotlin (jongotlin) - - Fabien LUCAS (flucas2) - - Travis Carden (traviscarden) - - Daniel González (daniel.gonzalez) - - Fred Cox - - Sylvain BEISSIER (sylvain-beissier) - - Noah Heck (myesain) - - Massimiliano Braglia (massimilianobraglia) - - Sergey Yastrebov - - Brajk19 - - Julie Hourcade (juliehde) - - Chris Jones (magikid) - - Florian Pfitzer (marmelatze) - - Ian Irlen - - Ruben Jacobs (rubenj) - - Tiago Brito (blackmx) - - Pierrick VIGNAND (pierrick) - - zenas1210 - - Arturas Smorgun (asarturas) - - Nahuel Cuesta (ncuesta) - - Sebastian Grodzicki (sgrodzicki) - - Benjamin Laugueux - - Thibault Richard (t-richard) - - Vincent Simonin - - Cosmin Sandu - - Tristan Roussel - - Andrew Tchircoff (andrewtch) - - Pavlo Pelekh (pelekh) - - Vitaliy Ryaboy (vitaliy) - - Adrian Günter (adrianguenter) + - Tony Malzhacker - flip111 - Baldur Rensch (brensch) - - Maksim Kotlyar (makasim) - - Laurent Bassin (lbassin) - - Elan Ruusamäe (glen) - - Philippe Segatori - - Adrian Nguyen (vuphuong87) - - Simon Leblanc (leblanc_simon) - - Cornel Cruceru (amne) - - Max Rath (drak3) - - Venu - - Ryan Hendrickson + - Richard Bradley - Christian Sciberras (uuf6429) - - ampaze - - yclian - - Sander De la Marche (sanderdlm) + - Toon Verwerft (veewee) + - Ryan Hendrickson + - David Marín Carreño (davefx) + - Baptiste Meyer (meyerbaptiste) + - Gintautas Miselis (naktibalda) + - Xesxen + - Andreas Erhard (andaris) + - Mikhail Yurasov (mym) + - Johannes Klauss (cloppy) + - Reen Lokum + - EStyles (insidestyles) + - Sinan Eldem (sineld) + - Maks 3w (maks3w) + - Olivier Maisonneuve + - arai + - Zhuravlev Alexander (scif) + - Pedro Casado (pdr33n) + - Stefan Warman (warmans) + - Åsmund Garfors + - Julien Maulny - Claudio Zizza - - Jonathan (jlslew) - - abdul malik ikhsan (samsonasik) - - Simon Schick (simonsimcity) - - Benjamin Schoch (bschoch) - - Denis Charrier (brucewouaigne) - - Abhoryo - - Pascal Helfenstein - - Jesper Skytte (greew) - - Paul Oms - - Shaharia Azam - - James Johnston - - Alexandre Parent - - Geordie - - Ilya Levin (ilyachase) - - Grinbergs Reinis (shima5) - - Mouad ZIANI (mouadziani) - - Tony Malzhacker - - Xavier Briand (xavierbriand) - - Pedro Miguel Maymone de Resende (pedroresende) - - Dominik Ulrich - - Dustin Dobervich (dustin10) - - Miquel Rodríguez Telep (mrtorrent) - - Balazs Csaba - - michaelwilliams - - Mickaël Buliard (mbuliard) - - Mathias Brodala (mbrodala) - - Tales Santos (tsantos84) - - Martin Parsiegla (spea) - - katario - - wuchen90 - - Mickaël Isaert (misaert) - - Xesxen - - Alex Xandra Albert Sim - - Julien Maulny - - Lctrs - - Thomas P - - Amr Ezzat (amrezzat) - - Rustam Bakeev (nommyde) - - Maks 3w (maks3w) - - Marc Laporte - - Volodymyr Panivko - - Gerard van Helden (drm) - - Alexander Grimalovsky (flying) - - Andreas Braun - - Christophe Villeger (seragan) + - Thibault Buathier (gwemox) + - Renan Rodrigo + - Simon Leblanc (leblanc_simon) + - Daniël Brekelmans (dbrekelmans) + - Kien Nguyen + - Philipp Kolesnikov + - Maksim Kotlyar (makasim) + - Christophe V. (cvergne) + - Cosmin Sandu + - Sascha Dens (saschadens) + - Calin Mihai Pristavu + - Jonathan (jlslew) + - Oliver Hader + - Malte Müns + - Rodrigo Aguilera + - Gladhon + - Antal Áron (antalaron) + - Elan Ruusamäe (glen) + - Pavol Tuka + - Martins Sipenko + - Ricky Su (ricky) + - Mark Schmale (masch) + - Emil Einarsson + - Jason Woods - Xavier Leune (xleune) + - Jakub Kulhan (jakubkulhan) + - Emil Masiakowski + - skmedix (skmedix) + - stoccc + - Paweł Niedzielski (steveb) + - johan Vlaar + - Zouaoui Montassar + - Tarjei Huse (tarjei) + - Jeroen van den Enden (endroid) + - Jonatan Männchen + - Tales Santos (tsantos84) + - Gerben Oolbekkink + - Patrick Allaert + - Andreas Leathley (iquito) + - Mathias Brodala (mbrodala) + - Christian Stoller (naitsirch) + - James Hudson (mrthehud) + - Massimiliano Braglia (massimilianobraglia) + - AndrolGenhald + - Loïc Chardonnet + - Francis Turmel (fturmel) + - Don Pinkster + - Degory Valentine + - Julie Hourcade (juliehde) + - Franco Traversaro (belinde) + - Petar Obradović + - Gert de Pagter + - Pavlo Pelekh (pelekh) + - Edvin Hultberg - Niklas Keller - - Wouter van der Loop (toppy-hennie) - - Khoo Yong Jun + - Simeon Kolev (simeon_kolev9) + - Christophe Villeger (seragan) + - Vladimir Varlamov (iamvar) + - Shin Ohno (ganchiku) + - Adrian Nguyen (vuphuong87) + - Jibé Barth (jibbarth) + - Thomas Nunninger + - Jiri Barous + - kick-the-bucket + - Andrew Tchircoff (andrewtch) - ouardisoft - - Daniel Cestari - - Oleg Zinchenko (cystbear) - - wanxiangchwng - - Sascha Dens (saschadens) - - Harry Walter (haswalt) - - Alex Bogomazov (alebo) - - Roger Guasch (rogerguasch) - - aaa2000 (aaa2000) - - Krzysztof Łabuś (crozin) - - Robin van der Vleuten (robinvdvleuten) - - AndrolGenhald - - James Michael DuPont - - Javier López (loalf) - - Vladimir Luchaninov (luchaninov) - - Dmitrii Tarasov (dtarasov) - - Sergey Kolodyazhnyy (skolodyazhnyy) - - Reinier Kip - - julien57 - - Sebastian Krebs - - Fractal Zombie - - Nikita Nefedov (nikita2206) - - Israel J. Carberry - - Martin (meckhardt) - - EStyles (insidestyles) - - Daniël Brekelmans (dbrekelmans) - - develop - - Reen Lokum - - Johannes Klauss (cloppy) + - rtek + - Philipp Scheit (pscheit) + - Simon Heimberg (simon_heimberg) + - Mouad ZIANI (mouadziani) + - Rimas Kudelis + - Terje Bråten - Alex Bacart - - Jordi Sala Morales (jsala) - - Geert De Deckere - - Andrew Neil Forster (krciga22) - - Joost van Driel (j92) - - Matthieu Bontemps - - Philipp Kolesnikov - - Jan Prieser - - Alexandre Dupuy (satchette) - - _sir_kane (waly) - - Mike Meier (mykon) - - Chris Boden (cboden) - - Alexandre parent - - Jeroen Fiege (fieg) - - Damien Fa - - Nguyen Xuan Quynh - - benjaminmal - - Nicolas de Marqué (nicola) - - Tinjo Schöni - - Richard Bradley - - Jordan Deitch + - noniagriconomie + - Jon Gotlin (jongotlin) + - Jean-Baptiste GOMOND (mjbgo) + - Mark Sonnabaum + - Masterklavi + - Achilles Kaloeridis (achilles) + - Josiah (josiah) + - Benjamin Schoch (bschoch) + - RJ Garcia + - Sebastian Krebs + - ornicar + - Stéphan Kochen + - Ana Raro + - Jérôme Tamarelle (jtamarelle-prismamedia) + - Noah Heck (myesain) - Marco Lipparini (liarco) - - David Marín Carreño (davefx) - - Julien Turby - - Benedikt Lenzen (demigodcode) + - Roberto Nygaard + - Jordi Sala Morales (jsala) + - COMBROUSE Dimitri + - Daniel Cestari + - David Romaní + - Jacques MOATI (jmoati) + - Nikita Nefedov (nikita2206) - Eric Abouaf (neyric) - - Thomas Cochard (tcochard) - - Alex (garrett) - - Gintautas Miselis (naktibalda) - - Maxime Douailin - - Jaroslav Kuba - - shubhalgupta - - Kevin (oxfouzer) - - Jakub Podhorsky (podhy) - - Pierre-Emmanuel Tanguy (petanguy) - - Dennis Langen (nijusan) - - Francisco Alvarez (sormes) - - Bálint Szekeres - - Olivier Maisonneuve - - Adrien Roches (neirda24) - - Andrew Berry + - Brunet Laurent (lbrunet) + - Gregor Nathanael Meyer (spackmat) + - Carlos Quintana + - Dhananjay Goratela - Derek ROTH + - Maxime Douailin + - Aleksandr Volochnev (exelenz) + - aaa2000 (aaa2000) + - ToshY + - Ana Raro + - aegypius + - Cristoforo Cervino (cristoforocervino) + - Evan Villemez + - Mihai Stancu + - datibbaw + - Tamas Szijarto + - Shahriar56 + - Rootie + - Kristijan Kanalaš (kristijan_kanalas_infostud) + - zenmate + - Robin van der Vleuten (robinvdvleuten) + - MrMicky + - Thiago Cordeiro (thiagocordeiro) + - Michał Jusięga + - Wybren Koelmans (wybren_koelmans) + - Sebastian Marek (proofek) + - Johnson Page (jwpage) + - Chris Jones (magikid) + - Nahuel Cuesta (ncuesta) + - Brad Jones + - Florian Hermann (fhermann) + - Marc Laporte - Bill Hance (billhance) - - Morgan Auchede - - Jason Woods - - Romanavr - - Stéphan Kochen - - Andrei C. (moldman) - - Reedy - - Michel Hunziker - - Terje Bråten - - louismariegaborit - - grizlik - - Renan Gonçalves (renan_saddam) - - Marko Petrovic - - Mardari Dorel (dorumd) - - Stefan Warman (warmans) - - andrey1s - - Raphaëll Roussel - - Christopher Hall (mythmakr) - - David Molineus - - Stephan Vock (glaubinix) - - Gregor Nathanael Meyer (spackmat) - - Seb Koelen - - Jay Klehr - - Maximilian.Beckers - - Alex Kalineskou - - Pedro Casado (pdr33n) - - Oliver Hoff - - Alexander Dmitryuk (coden1) - - noniagriconomie - - Tristan Maindron (tmaindron) - - Franco Traversaro (belinde) - - Andreas Erhard (andaris) - - Dennis Væversted (srnzitcom) - - Dragos Protung (dragosprotung) - - Michał Jusięga - - Don Pinkster - - David Romaní + - Davide Borsatto (davide.borsatto) + - Nguyen Xuan Quynh + - Tinjo Schöni + - Maxime COLIN (maximecolin) + - Paulo Ribeiro (paulo) + - Wolfgang Klinger (wolfgangklingerplan2net) + - Vladyslav Petrovych + - Simon Mönch + - Florent Viel (luxifer) + - Michael Lutz + - Alexandre Parent + - Richard Quadling + - Sergey Yastrebov + - Dominik Ulrich + - Paul Oms + - Sébastien Santoro (dereckson) + - Dmytro Boiko (eagle) + - Morten Wulff (wulff) + - Marko H. Tamminen (gzumba) + - Adrien Jourdier (eclairia) + - Tamás Nagy (t-bond) + - Delf Tonder (leberknecht) + - Simon Schick (simonsimcity) + - Michael Devery (mickadoo) + - Matt Robinson (inanimatt) + - Andrew Hilobok (hilobok) + - Fabian Vogler (fabian) + - Daniel Badura + - Jan Kramer + - Eric COURTIAL + - buffcode + - Stefano Degenkamp (steef) + - Simon DELICATA + - Johnny Peck (johnnypeck) + - Matthieu Mota (matthieumota) + - marie + - Mior Muhammad Zaki (crynobone) + - Noémi Salaün (noemi-salaun) + - Stéphane Delprat + - Asier Etxebeste + - Evan Shaw + - Lorenzo Millucci (lmillucci) + - julien57 + - Chris Heng (gigablah) + - Mantas Var (mvar) + - Robert Fischer (sandoba) + - Felds Liscia (felds) + - Volodymyr Panivko + - Richard van den Brand (ricbra) + - Marcel Hernandez + - Andrew Berry + - Youssef Benhssaien (moghreb) + - Matt Janssen + - Oriol Viñals + - alexpozzi + - Seb Koelen + - Reyo Stallenberg (reyostallenberg) + - Glodzienski - Daniel Alejandro Castro Arellano (lexcast) + - Guillaume Verstraete + - Jan Walther (janwalther) + - Michiel Boeckaert (milio) + - jochenvdv + - Francisco Alvarez (sormes) + - michaelwilliams + - Miquel Rodríguez Telep (mrtorrent) + - Jonas Elfering + - Morgan Auchede + - Denis Zunke (donalberto) + - Fabien Salles (blacked) + - Jan Prieser + - James Michael DuPont + - Nico Haase + - vitaliytv + - Luis Tacón (lutacon) + - Douglas Hammond (wizhippo) + - Pedro Miguel Maymone de Resende (pedroresende) - Vincent Composieux (eko) - mweimerskirch - - Daniel Badura - - Henry Snoek (snoek09) - - Korvin Szanto + - Martin Parsiegla (spea) + - Sofien Naas + - Pierrick VIGNAND (pierrick) + - Sander De la Marche (sanderdlm) + - Alexander Li (aweelex) + - Oleksandr Barabolia (oleksandrbarabolia) + - Ian Jenkins (jenkoian) + - Jakub Podhorsky (podhy) + - Andreas Braun + - DT Inier (gam6itko) + - Geert De Deckere + - hugovms + - Andrii Popov (andrii-popov) + - Oleg Zinchenko (cystbear) + - Andreas Lutro (anlutro) + - Christian Soronellas (theunic) + - Quentin Dreyer (qkdreyer) + - Dave Marshall (davedevelopment) + - Thomas Ploch + - Patrick Dawkins (pjcdawkins) + - Jason Tan (jt2k) + - Ian Irlen + - Cyril Vermandé (cyve) + - Luca Saba (lucasaba) + - Travis Carden (traviscarden) + - Kevin SCHNEKENBURGER + - Vladimir Valikayev + - benjaminmal + - Reedy + - Venu + - Ilia (aliance) + - Simon (kosssi) + - Evan C + - Joost van Driel (j92) + - Christin Gruber (christingruber) + - Harry Walter (haswalt) + - Krzysztof Łabuś (crozin) + - shubhalgupta + - Alexander Miehe + - Benoît Bourgeois (bierdok) - mwsaz - - scyzoryck - - Bastien THOMAS - - Matt Johnson (gdibass) - - Ivan - - Christophe V. (cvergne) - - Artur Eshenbrener - - Matteo Beccati (matteobeccati) - - Rostyslav Kinash - - Rodrigo Méndez (rodmen) - - Michael Devery (mickadoo) - - Wybren Koelmans (wybren_koelmans) - - Davide Borsatto (davide.borsatto) - - aegypius - - Cristoforo Cervino (cristoforocervino) - - Aurimas Niekis (aurimasniekis) - - Egor Taranov - - Jelle Raaijmakers (gmta) - - Jan Pintr - - Gerben Oolbekkink + - Daniel González (daniel.gonzalez) - Ivo Bathke (ivoba) - - Koen Kuipers (koku) - - Antoine Corcy - - Jon Dufresne - - Michael Piecko (michael.piecko) - - Sebastian Blum - - Natsuki Ikeguchi - - Carlos Pereira De Amorim (epitre) - - Simon (kosssi) - - Joschi Kuphal - - Martijn Evers - - DemigodCode - - Dhananjay Goratela + - Bálint Szekeres + - Michael Roterman (wtfzdotnet) + - Arnaud Frézet + - Andrew Codispoti + - Vincent Simonin + - Ondrej Exner + - Marek Pietrzak (mheki) + - Mickaël Andrieu (mickaelandrieu) + - Sofiane HADDAG (sofhad) + - ampaze + - DUPUCH (bdupuch) + - Philippe Segatori + - Roland Franssen :) + - Florian Wolfsjaeger (flowolf) + - Dmitry Parnas (parnas) + - Kuba Werłos (kuba) + - Yosmany Garcia (yosmanyga) + - Alex (garrett) - Benjamin Zikarsky (bzikarsky) - - Evan C - - Zouaoui Montassar - - Gennady Telegin - - Andrew Hilobok (hilobok) - - Marko H. Tamminen (gzumba) - - Chris Heng (gigablah) - - Jan Nedbal - - fedor.f - - Thomas Nunninger - - Douglas Reith (douglas_reith) - - Piotr Stankowski - - Kristof Van Cauwenbergh (kristofvc) - - Thiago Cordeiro (thiagocordeiro) - - Dmytro Boiko (eagle) - - Ramunas Pabreza (doobas) - - Rodrigo Aguilera - - jochenvdv - - Ulumuddin Cahyadi Yunus (joenoez) - - Hidde Boomsma (hboomsma) - - Xavier Lacot (xavier) - - Malte Müns + - Jawira Portugal (jawira) + - Benjamin Lebon + - Toni Peric (tperic) + - Gina Peter Banyard + - Jörn Lang + - Hany el-Kerdany + - abdul malik ikhsan (samsonasik) + - Trevor North + - Cameron Porter + - Hossein Bukhamsin + - David Molineus + - Matteo Beccati (matteobeccati) + - Maximilian.Beckers + - Oliver Hoff + - Alexander Dmitryuk (coden1) + - Alex Kalineskou + - Martin (meckhardt) + - avorobiev + - Randy Geraads + - Dustin Dobervich (dustin10) - Simon Watiau (simonwatiau) - - marie - - Wolfgang Klinger (wolfgangklingerplan2net) - - rtek - - Wu (wu-agriconomie) - - Jayson Xu (superjavason) - - Geoffrey Brier (geoffrey-brier) - - stoccc - - Vladimir Valikayev + - Ivan Kurnosov + - Alex Xandra Albert Sim + - Mickaël Buliard (mbuliard) + - izzyp + - Mario Ramundo (rammar) + - Alexandre parent + - Matthieu Calie (matth--) + - Sergey Zolotov (enleur) + - Martijn Evers + - Sébastien Despont (bouillou) + - Tony Tran + - Vincent CHALAMON + - Matthieu Bontemps + - Ruben Jacobs (rubenj) + - Grégoire Penverne (gpenverne) + - Ulumuddin Cahyadi Yunus (joenoez) + - Tristan Roussel + - Maximilian Bösing + - Florian Pfitzer (marmelatze) + - Jean Pasdeloup + - ywisax + - Julien Tattevin (jutattevin) + - Besnik Br - Vitaliy Zhuk (zhukv) - - Richard van den Brand (ricbra) - - Marcel Hernandez - - Felds Liscia (felds) - - buffcode - - Shahriar56 - - Jibé Barth (jibbarth) - - Yuriy Vilks (igrizzli) - - Wesley Lancel - - Arno Geurts - - Andrey Sevastianov - - Kevin SCHNEKENBURGER - - Simon Mönch + - Ramunas Pabreza (doobas) + - Adrien Lucas (adrienlucas) + - den + - Philipp Keck + - fago + - Gálik Pál + - Franck RANAIVO-HARISOA (franckranaivo) + - Loïc Beurlet + - Marcos Gómez Vilches (markitosgv) + - StefanoTarditi + - 243083df + - Sebastian Grodzicki (sgrodzicki) + - Adrian Günter (adrianguenter) + - Nikolai Mikhailov (sonnymilton) + - Yi-Jyun Pan + - Alexandre Dupuy (satchette) + - Michel Hunziker + - Julien Fredon + - Wouter van der Loop (toppy-hennie) + - Lukas Mencl + - Tiago Brito (blackmx) + - Thomas P + - Benjamin Laugueux + - Ivan Menshykov + - fedor.f + - Stéphane Escandell (sescandell) + - frost-nzcr4 + - Chris Boden (cboden) + - Anton A. Sumin + - Marko Petrovic + - VJ + - Koen Kuipers (koku) + - Sergey Kolodyazhnyy (skolodyazhnyy) + - “Filip + - Piotr Stankowski + - Israel J. Carberry + - Natsuki Ikeguchi - Neil Ferreira - - Achilles Kaloeridis (achilles) - - Lorenzo Millucci (lmillucci) - - Benjamin Grandfond (benjamin) - - Tamas Szijarto - - Vladyslav Petrovych - - Åsmund Garfors + - DemigodCode + - Robin Lehrmann + - vladimir.panivko + - Kagan Balga (kagan-balga) + - Sebastian Blum + - Thibaut THOUEMENT (thibaut_thouement) + - Rodrigo Méndez (rodmen) + - Raphaëll Roussel + - Thibault Gattolliat (crovitche) + - Thomas Trautner (thomastr) + - Sebastian Paczkowski (sebpacz) + - Fabien LUCAS (flucas2) + - Oriol Viñals + - Jose Gonzalez + - Geordie + - Guillaume Aveline + - Ondrej Machulda (ondram) + - Konstantin Grachev (grachevko) + - Alaattin Kahramanlar (alaattin) + - scyzoryck - origaminal - - Oleksandr Barabolia (oleksandrbarabolia) + - Thomas Cochard (tcochard) + - Jordan Deitch + - Mike Meier (mykon) + - yclian + - James Johnston + - Benjamin Grandfond (benjamin) + - Aurimas Niekis (gcds) + - phpner + - Matt Johnson (gdibass) + - Douglas Reith (douglas_reith) + - Julien DIDIER (juliendidier) + - stlrnz + - Dennis Væversted (srnzitcom) + - Joschi Kuphal + - Reinier Kip + - Thibault Richard (t-richard) + - _sir_kane (waly) + - Paul Kamer (pkamer) + - develop + - David ALLIX + - Max Rath (drak3) + - Shaharia Azam + - Denis Charrier (brucewouaigne) + - Wesley Lancel + - Amr Ezzat (amrezzat) + - Korvin Szanto + - Quentin de Longraye (quentinus95) + - Gerard van Helden (drm) + - fzerorubigd + - NanoSector + - SpacePossum + - Julien Turby + - Egor Taranov + - Kieran Cross (kilosierracharlie) - Adán Lobato (adanlobato) - - Simeon Kolev (simeon_kolev9) - - Adrien Peyre (adpeyre) + - Krystian Marcisz (simivar) + - Mickaël Isaert (misaert) + - Carson Full (carsonfull) + - Jon Dufresne + - Cyril Quintin (cyqui) + - Dennis Langen (nijusan) + - Robert Gruendler (pulse00) + - Thomas Durand + - Tim Düsterhus + - Fractal Zombie + - Stanislau Kviatkouski (7-zete-7) + - Ben + - Thorry84 + - Steve Grunwell + - Pascal Helfenstein + - Abhoryo + - Jesper Skytte (greew) + - Ilya Levin (ilyachase) + - Roger Guasch (rogerguasch) + - Jesper Noordsij + - Gert Wijnalda (cinamo) + - Cyril Pascal (paxal) + - Ahmed Ashraf (ahmedash95) + - Benedikt Lenzen (demigodcode) + - John Bohn (jbohn) + - umpirski + - Carlos Pereira De Amorim (epitre) + - Pierre-Emmanuel Tanguy (petanguy) + - Khoo Yong Jun + - Jelle Raaijmakers (gmta) + - alexandre.lassauge + - Rafał Wrzeszcz (rafalwrzeszcz) + - Simo Heinonen (simoheinonen) + - Alexander Grimalovsky (flying) + - Romanavr + - Cornel Cruceru (amne) + - Ворожцов Максим (myks92) + - Andre Hoong + - Artur Eshenbrener + - Johann Saunier (prophet777) + - Nicole Cordes (ichhabrecht) + - Arturas Smorgun (asarturas) + - Daisuke Ohata + - Andrey Sevastianov + - Vitaliy Ryaboy (vitaliy) + - Jakub Vrána (vrana) + - Antoine Corcy + - Brajk19 + - Baptiste CONTRERAS + - grizlik + - Arjan Keeman + - Nicolas Dousson + - Adrien Wilmet (adrienfr) + - Barney Hanlon + - wanxiangchwng + - Thijs-jan Veldhuizen (tjveldhuizen) + - Jan Pintr + - Rustam Bakeev (nommyde) + - radar3301 + - Christopher Hall (mythmakr) + - Aurimas Niekis (aurimasniekis) + - Behnoush Norouzali (behnoush) + - Rafael Kraut + - Damien Fa + - Gustavo Falco (gfalco) + - Bozhidar Hristov + - Paweł Wacławczyk (pwc) + - Sylvain BEISSIER (sylvain-beissier) + - David Fuhr + - Casper Valdemar Poulsen + - Hidde Boomsma (hboomsma) + - Loïc Ovigne (oviglo) + - Benoît Merlet (trompette) + - Adam + - Ivan Grigoriev (greedyivan) + - Carlos Buenosvinos (carlosbuenosvinos) + - Tristan Maindron (tmaindron) + - Nykopol (nykopol) + - Mardari Dorel (dorumd) + - Mátyás Somfai (smatyas) + - Laurent Bassin (lbassin) + - Manuel Alejandro Paz Cetina + - Alexander Zogheb + - alekLexis + - Szymon Tarasiński + - Ahmed Soliman (ahmedsoliman) + - victor-prdh + - Ovidiu Gabriel Gireada (ovidiugireada) + - Àlex Fiestas + - cgonzalez + - Philippe Pichet + - M.Mahdi Mahmoodian + - Olivier Laviale (olvlvl) + - Anton Dyshkant + - gazi04 + - Romeo + - Elias Häußler - Nico Hiort af Ornäs + - JustDylan23 + - Peter van Dommelen + - ged15 + - Kevin Auivinet + - Jean-François Morin-Abdullah + - Anne-Sophie Bachelard + - Sait KURT + - Matijn (matijn-made) + - Orban Florin (forban) + - d-mitrofanov-v + - Dmytro Liashko + - Yurguis Garcia (yurguis) + - Anton Babenko (antonbabenko) + - Marcin Twardowski + - Your Name + - Simon Jamain + - qzylalala + - abluchet - Christian Seel + - Damian (baum) - Muhammad Elhwawshy - - Haikiri - - Pierre-Chanel Gauthier (kmecnin) + - Filippos Karailanidis + - Jiri Velek - Benjamin Pick - - Konstantin Bogomolov - - Marco + - Pierre-Chanel Gauthier (kmecnin) + - Konstantin S. M. Möllers (ksmmoellers) + - Ronny (big-r) + - Piotr Zajac + - Loïc Vernet (coil) + - Mathieu Morlon (glutamatt) + - Kasperki + - Stan Jansen (stanjan) + - Luis Pabon (luispabon) + - Attila Szeremi + - Piergiuseppe Longo - Ken Marfilla (marfillaster) + - Tobias Rautenkranz + - Siebe Vanden Eynden + - Zeeshan Rashid (zeeshan) + - Antonio Torres + - johnstevenson + - Volker (skydiablo) + - Haikiri + - Nathaniel Catchpole + - Helmer Aaviksoo + - Ben Johnson + - Julien BERNARD - Swen van Zanten - Jean-Baptiste Delhommeau - - Simon Jamain - - JustDylan23 + - Walter Dal Mut (wdalmut) + - Konstantin Bogomolov - Robert Meijers - - Anton Babenko (antonbabenko) + - Koalabaerchen + - Yuri Karaban + - Adam Klvač + - Adrian Olek (adrianolek) + - Jakub Chábek - Stefan Kruppa + - Łukasz Makuch - Julien Boudry - - johnstevenson - - Ben Johnson - - Yurguis Garcia (yurguis) - - Nathaniel Catchpole - - Antonio Torres - - Volker (skydiablo) + - pizzaminded + - François Poguet + - Götz Gottwald + - Gunnar Lium (gunnarlium) - Eduardo Conceição - - Anton Dyshkant - - M.Mahdi Mahmoodian + - karstennilsen + - Matt Emerson + - Marco + - maxperei - Sajad Torkamani - - Helmer Aaviksoo - - takashiraki - - Olivier Laviale (olvlvl) - - Luis Pabon (luispabon) - - Anthony Ferrara - - ElisDN - - karstennilsen - - Peter van Dommelen - - MrNicodemuz - - maxperei - - ged15 - - Filippos Karailanidis - - Léon Gersen - - Vincent Bouzeran - - qzylalala + - arduanov + - Arek Bochinski + - Waqas Ahmed + - Radosław Kowalewski - Ali Tavafi + - André Laugks + - Bogdan Rancichi (devck) + - Aryel Tupinamba (dfkimera) + - Rowan Manning + - Sebastian Busch (sebu) + - Koray Zorluoglu + - Rémi Leclerc + - Rudolf Ratusiński - Danil Khaliullin (bifidokk) - - Attila Szeremi - - Stan Jansen (stanjan) - - pizzaminded - - Radosław Kowalewski - - Konstantin S. M. Möllers (ksmmoellers) - - Piergiuseppe Longo - - Ryan Linnit - - Thomason, James - - Walter Dal Mut (wdalmut) - - abluchet - - arduanov - - remieuronews - - zcodes - - Johannes Müller (johmue) - - Julien ARBEY - - Nicolas Bastien (nicolas_bastien) - - Artyum Petrov - - AnotherSymfonyUser (arderyp) - - Vitalii - - Colin Michoudet - - BRAMILLE Sébastien (oktapodia) - - samuel laulhau (lalop) - - Steve Müller - - Ferran Vidal - - Michael J - - Juanmi Rodriguez Cerón - - Nicolas Lemoine - - Ionut Cioflan - - Christian Jul Jensen - ChrisC - - Wim Godden (wimg) - - Tomasz Szymczyk (karion) - - Maxime Corteel (mcorteel) - - Mathieu MARCHOIS (mmar) - - Oleg Sedinkin (akeylimepie) - - Martin Mandl (m2mtech) - - David Gorges (davidgorges) + - Anthony Ferrara + - Sebastian Göttschkes (sgoettschkes) + - Daniil Gentili + - shreyadenny + - Gautier Deuette + - Alfonso Fernández García + - Maks Rafalko (bornfree) + - Dennis Haarbrink + - Alex Carol (picard89) + - Johannes Müller (johmue) + - EXT - THERAGE Kevin + - Adrien Foulon + - Thomas Ferney (thomasf) + - Sven Fabricius + - vlakoff - Jan Hort - - Tobias Genberg (lorceroth) - - Martijn Croonen - - Andy Stanberry - - Edwin Hageman - - Benedict Massolle (bemas) - - Walid BOUGHDIRI (walidboughdiri) - - Sylvain Lorinet - - Klaas Cuvelier (kcuvelier) - - Nouhail AL FIDI (alfidi) + - allison guilhem + - AmsTaFF (amstaff) + - Dario Guarracino + - sam-bee + - Flo Gleixner (redflo) + - abunch + - remieuronews + - Ryan Linnit + - Hugo Fonseca (fonsecas72) + - Jens Hatlak + - Tyler Stroud + - Kajetan Kołtuniak (kajtii) + - Andrei O + - Jordi Rejas + - Yevhen Sidelnyk + - Adrien Peyre (adpeyre) + - Peter Potrowl + - Damien Fayet (rainst0rm) + - efeen + - fruty + - Dominik Hajduk (dominikalp) - Ivan Nemets - - Markus Reinhold - - Ken Stanley - - Guillaume Gammelin - - soyuka - - Olatunbosun Egberinde - - Konstantinos Alexiou - - moldcraft - - Marcin Kruk - - vdauchy - - Frank Neff (fneff) - - Nick Stemerdink - - Nicolas Schwartz (nicoschwartz) - - Ludek Stepan - - Adel ELHAIBA (eadel) - - Adam Elsodaney (archfizz) - - Dionysis Arvanitis - - Vitali Tsyrkin - - neodevcode - - klyk50 - - Wotre - - George Bateman - - riadh26 - - Tim Lieberman - - Max Beutel - - Rodolfo Ruiz - - natechicago - - iamvar - - Barthold Bos - - Christophe Meneses (c77men) - - upchuk - - Ignacio Alveal - - Sven Nolting - - Dario Savella - - Luis Muñoz - - Artyom Protaskin + - Léon Gersen + - Reda DAOUDI + - Quentin Favrie + - Vincent Bouzeran + - Jérémy (libertjeremy) + - Tristan Bessoussa (sf_tristanb) + - Nil Borodulia + - Alexandre Fiocre (demos77) + - Alejandro Diaz Torres + - Nicolas Tallefourtané (nicolab) + - Nasim + - Randel Palu + - Christian Jul Jensen + - Pavel Starosek (octisher) + - Christian + - Marcin Szepczynski (szepczynski) + - Tim Ward + - Luís Cobucci (lcobucci) + - Martynas Sudintas (martiis) + - Adria Lopez (adlpz) + - David Legatt (dlegatt) + - Nikita Sklyarov + - Pierrick Charron + - Martin Mayer (martin) + - David Stone + - Raul Garcia Canet (juagarc4) + - Tobias Stöckler + - Gyula Szucs + - Mark Beech (jaybizzle) + - Guillaume Sainthillier (guillaume-sainthillier) + - David Windell + - Robert Kopera + - Valentin + - Jelle Bekker (jbekker) + - Quique Porta (quiqueporta) + - Antoine Beyet + - Wojciech Skorodecki + - Alexandre Pavy + - Mikko Ala-Fossi + - Knallcharge + - Geoffrey Pécro (gpekz) + - Joseph FRANCLIN - Almog Baku (almogbaku) - Boris Grishenko (arczinosek) - - ncou - - Richard Čepas - - Przemysław Piechota (kibao) - - Victor Truhanovich (victor_truhanovich) - - mikocevar - - Tobias Feijten (tobias93) - - Benjamin BOUDIER - - Simone Fumagalli (hpatoio) - - Viktor Novikov (nowiko) - - Christoph Krapp - - Raphael Davaillaud - - Frederik Schwan - - Lesnykh Ilia - - Rick Prent - - skalpa - - Patryk Kozłowski - - Joel Lusavuvu (enigma97) - - Dennis Haarbrink - - Grzegorz Łukaszewicz (newicz) - - Beth Binkovitz - - Arkalo2 - - Shyim - - Asil Barkin Elik (asilelik) - - AntoineDly - - fabios - - Liverbool (liverbool) - - Gustavo Adrian - - vltrof - - Ismo Vuorinen - - dbrekelmans - - Jean-Baptiste Nahan - - Jan Vernarsky - - Simon Bouland (bouland) - - Daniel Tiringer - - Maarten Nusteling (nusje2000) - - Holger Lösken - - Mark Ogilvie - - allison guilhem - - AmsTaFF (amstaff) - - Matt Wells - - Raphaëll Roussel - - Ian Carroll - - Dennis Fehr - - Gemorroj (gemorroj) - - Gilles Doge (gido) - - Bikal Basnet - - changmin.keum - - Sébastien HOUZE - - Joeri Verdeyen (jverdeyen) - - Ruslan Zavacky (ruslanzavacky) - - Eno Mullaraj (emullaraj) - - Urban Suppiger - - adhamiamirhossein - - Jose Manuel Gonzalez (jgonzalez) - - Moza Bogdan (bogdan_moza) - - Aharon Perkel - - Patrick Luca Fazzi (ap3ir0n) - - Jeremiah VALERIE - - Matthias Derer - - gr8b - - mousezheng - - Jakub Janata (janatjak) - - Giorgio Premi - - Julius (sakalys) - - Joseph Maarek - - Alexander Menk - - Ville Mattila - - Jelizaveta Lemeševa (broken_core) - - Jacek Kobus (jackks) - - Andrea Sprega (asprega) - - Stewart Malik - - Petr Jaroš (petajaros) - - Jos Elstgeest - - zors1 - - Julian Krzefski - - Derek Stephen McLean - - znerol - - Matthew Covey - - LHommet Nicolas (nicolaslh) - - Emilien Escalle - - Dominic Tubach - - error56 - - Léo VINCENT - - patrick-mcdougle - - Vladislav Krupenkin (ideea) - - Rafał Toboła - - Jan Vernieuwe (vernija) - - Jesper Noordsij - - Thiago Melo - - Andras Debreczeni - - sarah-eit - - jean pasqualini (darkilliant) - - Sagrario Meneses - - Choong Wei Tjeng (choonge) - - Amin Hosseini (aminh) - - David Christmann - - Richard van Velzen - - Takashi Kanemoto (ttskch) - - Paul L McNeely (mcneely) - - Dan Blows - - Chris - - Thomas Dubuffet (thomasdubuffet) - - Mehdi Achour (machour) - - Stefano Cappellini (stefano_cappellini) - - Sean Templeton - - db306 - - Benjamin Schultz (bschultz) - - Ramon Cuñat - - Benhssaein Youssef - - Anatol Belski - - Steve Frécinaux - - Thomas Jarrand - - Michael Schneider - - Gerd Christian Kunze (derdu) - - Ondřej Frei - - Sergey Fedotov - - Konstantin Scheumann - - k-sahara - - Markus Staab - - Stéphane Seng (stephaneseng) - - Marcus - - Silvio Ginter - - Maxime THIRY - - Mephistofeles - - Oleh Korneliuk - - everyx - - Ruben Kruiswijk - - Richard Heine - - VolCh - - Emmanuel Vella (emmanuel.vella) - - Christian Kolb - - DidierLmn - - David Courtey (david-crty) - - Martin Mayer (martin) - - Sylvain Just - - Renan Taranto (renan-taranto) - - Maria Grazia Patteri + - Daniel Rotter (danrot) + - AlberT + - Boullé William (williamboulle) - Asrorbek (asrorbek) - - Piers Warmers - - dima-gr - - Pawel Szczepanek (pauluz) - - Klaas Naaijkens - - Bojan - - Aurélien MARTIN - - Christoph Vincent Schaefer (cvschaefer) - - Valentin - - Andrew Coulton - - Rafał - - John Espiritu (johnillo) - - Giuseppe Petraroli (gpetraroli) - - Artem Oliinyk (artemoliynyk) - - Andrea Quintino (dirk39) - - DSeemiller - - Roman Igoshin (masterro) - - Mei Gwilym (meigwilym) - - youssef saoubou - - Alessandra Lai - - timesince - - Lorenzo Adinolfi (loru88) - - tarlepp - - Marie Minasyan (marie.minassyan) - - Axel Venet - - Michael Hudson-Doyle - - Nicolás Alonso - - Roman Tyshyk - - Bram Van der Sype (brammm) - - Grayson Koonce - - pritasil - - David Legatt (dlegatt) - - A. Pauly - - Johan Wilfer (johanwilfer) - - rogamoore - - Peter Dietrich (xosofox) - - Volker Killesreiter (ol0lll) - - Ilya Chekalsky - - Alexander Onatskiy - - Florent Olivaud - - Vladimir Vasilev (bobahvas) - - Atthaphon Urairat - - Eddy - - Ramazan APAYDIN (rapaydin) - - Htun Htun Htet (ryanhhh91) - - lerminou - - David Ronchaud - - Harald Tollefsen + - zcodes + - alanzarli + - Matthew Donadio + - Louis-Proffit + - Gerrit Addiks + - rchoquet + - brian978 + - Muhammed Akbulut - Fabien - - ju1ius - - gstapinato - - Per Sandström (per) - - Julius Beckmann (h4cc) - - Miłosz Guglas (miloszowi) - - Rubén Calvo (rubencm) - - Claus Due (namelesscoder) - - Stuart Fyfe - - Erik van Wingerden - - Eduard Bulava (nonanerz) - - Carsten Nielsen (phreaknerd) - - Jeffrey Moelands (jeffreymoelands) - - Giovanni Albero (johntree) - - Sergey Novikov (s12v) - - Maksym Pustynnikov (pustynnikov) - - Stefan Koopmanschap - - Osayawe Ogbemudia Terry (terdia) - - Ferenczi Krisztian (fchris82) - - Mihai Stancu - - Mahmoud Mostafa (mahmoud) - - Jay Severson - - Dariusz Czech - - SenTisso - - Manatsawin Hanmongkolchai - - Gunther Konig - - Stephen Clouse - - Nikos Charalampidis - - Caligone - - Peter Jaap Blaakmeer - - Alexander Menk - - Rudolf Ratusiński - - Julien BERNARD - - Grégoire Hébert (gregoirehebert) - - AbdElKader Bouadjadja - - Pavel Starosek (octisher) - - Kérian MONTES-MORIN (kerianmm) - - nietonfir - - ryunosuke + - Maximilian Berghoff (electricmaxxx) + - Ser5 + - Abdouni Karim (abdounikarim) - Nicolas A. Bérard-Nault - - Adrian Olek (adrianolek) - - Raul Rodriguez (raul782) - - Botond Dani (picur) - - Tadcka - - Mauricio Lopez (diaspar) - - David Grüner (vworldat) - - Jeremy Benoist - - Gilbertsoft - - phuc vo (phucwan) - - SnakePin - - David Stone - - George Sparrow - - Maxime P - - Frédéric G. Marand (fgm) - - Valentin Barbu (jimie) - - Foxprodev - - Wouter Diesveld - - Guillem Fondin (guillemfondin) - - es - - Simon Frost - - Constantine Shtompel - - Diego Campoy - - Adrien Moiruad - - Rudy Onfroy - - Adrien Samson (adriensamson) - - Mantas Urnieža - - Florent SEVESTRE (aniki-taicho) - - Danilo Silva - - Eric Schildkamp - - Luis Ramirez (luisdeimos) - - tuqqu - - Romain Jacquart (romainjacquart) - - jersoe - - Ismail Faizi (kanafghan) - - Irmantas Šiupšinskas (irmantas) - - Will Donohoe - - Sergio - - Fabian Steiner (fabstei) - - Maciej Paprocki (maciekpaprocki) - - Robert Worgul - - Kevin Decherf - - Raphaël Davaillaud - - Nathan Sepulveda - - Clément LEFEBVRE (nemoneph) - - Tom Houdmont - - Victor Garcia - - Frankie Wittevrongel - - d.huethorst - - Sergey Stavichenko (sergey_stavichenko) - - Louis-Proffit - - shdev - - Ole Rößner (basster) - - thecaliskan - - John Nickell (jrnickell) - - Nikita Starshinov (biji) - - Ilya Biryukov (ibiryukov) - - Ciaran McNulty (ciaranmcnulty) - - Dominik Piekarski (dompie) - - Nowfel2501 - - Alexis MARQUIS - - Julius Kiekbusch - - Tatsuya Tsuruoka - - David Stone - - Raul Garcia Canet (juagarc4) - - Tobias Stöckler - - Gyula Szucs - - Patrick Carlo-Hickman - - Jake Bishop (yakobeyak) - - Christopher Georg (sky-chris) - - Antoine Leblanc - - Alexander McCullagh (mccullagh) - - Dan Kadera - - Ivan Yivoff + - nuryagdy mustapayev (nueron) + - abulford - Icode4Food (icode4food) - - Andreas Allacher - - Thibaut Salanon - - Shrey Puranik - - Benjamin Rosenberger - - Michael Gwynne - - Ionel Scutelnicu (ionelscutelnicu) - - Thomas Chmielowiec - - Alexander Bauer (abauer) - - Aurélien Fontaine - - jack.thomas (jackthomasatl) - - Rares Sebastian Moldovan (raresmldvn) - - Alex Carol (picard89) - - Guillaume Loulier (guikingone) - - Ian Littman (iansltx) - - chispita - - Wojciech Sznapka - - Stefan Kleff (stefanxl) - - Claas Augner - - Florent Blaison (orkin) - - parhs - - Fraller Balázs (fracsi) - - Jorge Maiden (jorgemaiden) - - EdgarPE - - jannick-holm - - Simon Asika - - peter - - Hadrien Cren (hcren) - - Aryel Tupinamba (dfkimera) - - Bertalan Attila - - Rowan Manning - - Matt Drollette (mdrollette) - - Nicholas Ruunu (nicholasruunu) - - Jason Stephens - - Pascal Hofmann - - hainey - - Dominik Hajduk (dominikalp) - - Sander Goossens (sandergo90) - - Volodymyr Kupriienko (greeflas) - - Jorge Martin (jorgemartind) - - Kubicki Kamil (kubik) - - David Szkiba - - David Joos (djoos) - - Niels Robin-Aubertin - - xdavidwu - - smokeybear87 - - Ash014 - - Ralf Kühnel (ralfkuehnel) - - Shane Preece (shane) - - Tomáš Votruba - - Raphaël Droz - - Johan de Ruijter + - Brandon Antonio Lorenzo + - Drew Butler + - Mbechezi Nawo + - PierreRebeilleau + - Clement Herreman (clemherreman) + - Martijn Boers (plebian) - Franck Ranaivo-Harisoa - Oncle Tom - Peter Gribanov - - Tito Costa - - Simon Sargeant - - ChS - - tinect (tinect) - - Bernhard Rusch - - David Négrier (moufmouf) - - Albion Bame (abame) - - Stas Soroka (stasyan) - - Jm Aribau (jmaribau) - - Toby Griffiths (tog) - - Nico Müller (nicomllr) - - André Laugks - - Steffen Keuper - - adnen chouibi - - Alex Silcock - - Paul Seiffert (seiffert) - - Jairo Pastor - - Sander Coolen (scoolen) - - Remi Collet - - Benjamin RICHARD - - Zachary Tong (polyfractal) - - Matt Lehner - - Helmut Januschka - - Haritz Iturbe (hizai) - - alefranz - - Lars Moelleken - - Dušan Kasan (dudo1904) - - j4nr6n (j4nr6n) - - Willem Verspyck - - Peter Thompson (petert82) - - Drew Butler - - Paweł Stasicki - - Chris Maiden (matason) - - Daniel Basten (axhm3a) - - Plamen Mishev (pmishev) - - joris de wit (jdewit) - - Raphael Hardt - - Kurt Thiemann - - Qingshan Luo - - Alex Vasilchenko - - Chris Tickner - - Mikko Ala-Fossi - - Vladimir Pakhomchik - - Mickael Perraud - - François Poguet - - Tugba Celebioglu - - Tobias Weinert (tweini) - - Dominik Schwind (dominikschwind) - - Jan Christoph Beyer - - David Otton - - ZiYao54 - - luffy1727 - - emilienbouard (neime) - - Paul Andrieux - - James Sansbury - - InbarAbraham - - Faton (notaf) - - Stanislav Gamaiunov (happyproff) - - Bermon Clément (chou666) - - Ahmed Shamim Hassan (me_shaon) - - pkowalczyk - - Gleb Sidora - - Dawid Sajdak - - ProgMiner - - Vaidas Lažauskas - - Maks Rafalko (bornfree) - - gndk - - Alfonso Fernández García - - withbest - - Alan Scott - - Jules Lamur - - gauss - - Ikko Ashimine - - Alexandre GESLIN - - Nasim - - Randel Palu - - Jorrit Schippers (jorrit) - - Ivan Nemets - - Konrad Mohrfeldt - - Dalibor Karlović - - Mikhail Prosalov (mprosalov) - - Thanos Polymeneas (thanos) - - Arek Bochinski - - Ostrzyciel - - Alan ZARLI - - Oleg Krasavin (okwinza) - - Jérôme Nadaud (jnadaud) - - Christian Weiske - - devel - - Kamil Piwowarski (cyklista) - - V1nicius00 - - Marien Fressinaud - - insekticid - - Jakub Chábek - - Bernat Llibre Martín (bernatllibre) - - downace - - Pierre Grimaud (pgrimaud) - - Matheus Gontijo - - Dan Wilga - - Thomas Chmielowiec (chmielot) - - jc + - nerdgod + - Giorgio Premi + - Jeremy Bush + - Kévin Gomez (kevin) + - David Vancl + - Miłosz Guglas (miloszowi) + - Evert Jan Hakvoort + - andreyserdjuk + - Camille Dejoye (cdejoye) + - Paul Matthews + - Frederic Godfrin + - Simone Ruggieri + - tuqqu + - Frank Jogeleit + - Moritz Kraft (userfriendly) + - jannick-holm + - Jakub Sacha + - Conrad Kleinespel (conradk) - Marcel Berteler - - Michael Zangerle - - andersmateusz - - Laurent Moreau - - Mario Blažek (marioblazek) - - Karlos Presumido (oneko) - - Stefan Hüsges (tronsha) - - Curtis (ccorliss) - - Juan Miguel Besada Vidal (soutlink) - - Jan Eichhorn (exeu) - - Mathieu Ledru (matyo91) - - Jonny Schmid (schmidjon) - - Christian Stocker - - Fabio Panaccione - - Oleksii Svitiashchuk - - Emre Akinci (emre) - - Berat Doğan - - Tiago Garcia (tiagojsag) - - Monet Emilien - - Timothy Anido (xanido) - - Kirill Saksin - - zolikonta - - Vladislav Iurciuc - - Antonio Mansilla - - Stefano A. (stefano93) - - Olaf Klischat - - Derek Bonner - - Péter Buri (burci) - - Christian Rishøj - - Bouke Haarsma - - Marcus Stöhr (dafish) - - Benjamin Laugueux - - Iliya Miroslavov Iliev (i.miroslavov) - - Ninos - - Angel Fernando Quiroz Campos (angelfqc) - - Dmitrii Baranov - - DerStoffel - - Marko Vušak - - Michael Telgmann - - Arash Tabrizian (ghost098) - - Hugo Sales - - G.R.Dalenoort - - Yann Rabiller (einenlum) - - Marek Binkowski - - baron (bastien) - - Michael Dowling (mtdowling) - - Iwan van Staveren (istaveren) - - Frederik Schmitt - - Serhii Polishchuk (spolischook) - - Taylan Kasap - - Oz (import) - - ghazy ben ahmed - - Tema Yud - - Pierre-Emmanuel CAPEL - - Cyrille Jouineau (tuxosaurus) - - Maxime Aknin (3m1x4m) - - Saem Ghani - - Nicolas Fabre (nfabre) + - RevZer0 (rav) + - Patrizio Bekerle + - Karolis Daužickas (kdauzickas) + - Geoff + - Konstantin Chigakov + - Alexander Pasichnik (alex_brizzz) - Reece Fowell (reecefowell) - Dmitrii Lozhkin + - Jaymin G + - Łukasz Chruściel (lchrusciel) + - Jérôme Dumas + - Vladislav Krupenkin (ideea) + - fmarchalemisys + - Ganesh Chandrasekaran (gxc4795) + - j0k (j0k) + - Matthias Derer + - ivelin vasilev + - Gustavo Adrian + - wesleyh + - Alexander Kurilo (kamazee) + - dbrekelmans + - Brian Graham (incognito) + - wallach-game + - Mehdi Mabrouk (mehdidev) + - Paul Le Corre + - Ivan Tse + - Jimmy Leger (redpanda) + - Thomas + - MGatner - Adam - - Mo Di (modi) - - Sergey Fokin (tyraelqp) - - Pavel Stejskal (spajxo) - - NIRAV MUKUNDBHAI PATEL (niravpatel919) - - Mario Young - - Guillaume Royer - - Yannick - - Žan V. Dragan - - Michał Marcin Brzuchalski (brzuchal) - - Nicolas - - Gerrit Addiks - - Nicolas Eeckeloo (neeckeloo) - - Menno Holtkamp - - Pierre Geyer (ptheg) - - psampaz (psampaz) + - Michael Zangerle + - Szymon Kamiński (szk) + - Andras Ratz + - Oz (import) + - Yann Rabiller (einenlum) + - Alexis Lefebvre + - Nicholas Ruunu (nicholasruunu) + - Sander Goossens (sandergo90) + - Michael Pohlers (mick_the_big) + - Gavin Staniforth + - Walid BOUGHDIRI (walidboughdiri) + - Vacheslav Silyutin + - Menno Holtkamp + - azine + - Tito Costa + - Дмитрий Пацура + - Pathpat + - Klaus Purer + - Marcello Mönkemeyer (marcello-moenkemeyer) + - Kirk Madera + - Johan Wilfer (johanwilfer) + - Andrew Marcinkevičius (ifdattic) + - Nicolas Pion + - Ariful Alam + - Amirreza Shafaat (amirrezashafaat) + - Dmitry (staratel) + - Konstantin Scheumann + - Christian Eikermann + - Yohan Giarelli (frequence-web) + - Nacho Martin (nacmartin) + - Urban Suppiger + - Emilie Lorenzo + - Gerry Vandermaesen (gerryvdm) + - Máximo Cuadros (mcuadros) + - Fabrice Locher + - dantleech + - Grayson Koonce + - Viktor Novikov (nowiko) + - patrick-mcdougle + - georaldc + - Philipp Hoffmann (philipphoffmann) + - Jason Stephens + - Sören Bernstein + - Roma (memphys) + - sensio - Vladislav (simpson) - - Guillaume LECERF + - agaktr + - Armando + - Jos Elstgeest + - baron (bastien) + - Adrian + - Michael + - michael.kubovic + - Zakaria AMMOURA (zakariaamm) + - shreypuranik + - Christian Weiske + - Atthaphon Urairat + - Kamil Musial + - SnakePin + - izenin - Carlos Tasada - - Peter Bex - - Gordienko Vladislav - - popnikos - - damaya - - Martijn Boers (plebian) - - Pavel Prischepa - - kurozumi (kurozumi) - - Malte Schlüter - - nuryagdy mustapayev (nueron) - - Gabriel Moreira - - Grégory Pelletier (ip512) - - Dmitry Danilson - - Ross Motley (rossmotley) - - Bruno Ziegler (sfcoder) - - darnel - - Daniel Bartoníček - - Marek Šimeček (mssimi) - - Łukasz Makuch - - Starfox64 - - Julien Bianchi (jubianchi) - - Andrei Igna - - Jean-Guilhem Rouel (jean-gui) - - abulford - - Emre YILMAZ - - Sergii Dolgushev (sergii-swds) - - rvoisin - - jamogon - - Nick Chiu - - Juan Gonzalez Montes (juanwilde) - - Luca Genuzio (genuzio) - - Andreas Hasenack - - Mathieu TUDISCO (mathieutu) - - Andreas Frömer - - Lance McNearney - - Alex Niedre - - evgkord - - Valentin VALCIU - - Sortex - - julien.galenski - - Ulrik McArdle - - Abdul.Mohsen B. A. A - - Jan Pintr - - Robert Gurau - - Marco Pfeiffer - - Bram Tweedegolf (bram_tweedegolf) + - Patrick Kaufmann + - Sepehr Lajevardi + - thib92 + - Alex Nostadt + - Peter Dietrich (xosofox) + - Sergey Fedotov + - Michael Bessolov + - Sam Anthony + - David Stone + - Maxime P - tamar peled - - Jitendra Adhikari (adhocore) - - Giuseppe Arcuti - - Norman Soetbeer - - Ryan Rud - - Ondřej Frei - - Tomanhez - - Nicholas Byfleet (nickbyfleet) - - Igor Tarasov (polosatus) - - Ruud Arentsen - - tsilefy - - Enrico - - Schuyler Jager (sjager) - - Roy-Orbison - - Dave Heineman (dheineman) - - Yann (yann_eugone) + - Jure (zamzung) + - none (nelexa) + - zors1 + - Jason Schilling (chapterjason) + - Lebnik + - Cláudio Cesar + - Philip Dahlstrøm + - Hryhorii Hrebiniuk + - Arne Groskurth + - The Whole Life to Learn + - Beno!t POLASZEK + - Simone Fumagalli (hpatoio) + - Plamen Mishev (pmishev) + - Philippe Degeeter (pdegeeter) + - Cédric Lahouste (rapotor) + - Evrard Boulou + - mshavliuk + - George Giannoulopoulos + - Malcolm Fell (emarref) + - Jan Emrich + - adam-mospan + - Serhii Smirnov + - Volodymyr Kupriienko (greeflas) + - Thomas Jarrand + - Kevin Vergauwen (innocenzo) + - karolsojko + - Pierre-Louis LAUNAY + - David Szkiba + - Quentin Moreau (sheitak) + - Cosmin-Romeo TANASE + - Aaron Scherer (aequasi) + - Maerlyn + - Neagu Cristian-Doru (cristian-neagu) + - Shiro + - gr8b + - Harry Wiseman + - Timothy Anido (xanido) + - Justin Reherman (jreherman) + - Pete Mitchell (peterjmit) + - Luca Genuzio (genuzio) + - Grzegorz Łukaszewicz (newicz) + - Eddy + - Maksym Pustynnikov (pustynnikov) - Jason Desrosiers - - Denis Yuzhanin - - hamza - - Jonathan Poston - - Alexis - - Thorsten Hallwas - - Wouter Sioen (wouter_sioen) - - Julien Pauli - - Kevin Verschaeve (keversc) - - Mark Spink - - Arkadiusz Kondas (itcraftsmanpl) - - Robert Campbell - - Nicolas Sauveur (baishu) - Daniel Iwaniec - Yury (daffox) - - Markus Tacker - - Denys Voronin (hurricane) - - Alex Olmos (alexolmos) - - Adam Klvač - - Vyacheslav Slinko - - Renato Mendes Figueiredo - - František Bereň - - Cedrick Oka + - ju1ius + - gstapinato + - Michael Simonson (mikes) + - Juan Traverso + - Radosław Benkel + - Aurélien Fontaine + - 2manypeople + - Christian Stocker + - hamza + - Johan + - demeritcowboy + - Angel Koilov (po_taka) + - Luis Ramón López López (lrlopez) + - klyk50 + - Artem (nexim) + - Dmitry Korotovsky + - alsar + - Jan Marek (janmarek) + - Thomas Ploch + - Kristen Gilden + - Pavel.Batanov + - Dmitriy Tkachenko (neka) + - Vivien + - Dennis Fehr + - Sander Marechal + - Beth Binkovitz + - Aaron Stephens (astephens) + - Goran Juric + - Wojciech Zimoń + - ElisDN + - xaav + - Renan Taranto (renan-taranto) + - Markus Thielen + - David Barratt + - Bertalan Attila + - Lesueurs Frédéric (fredlesueurs) + - Robin Kanters (anddarerobin) + - Sean Templeton + - Diego Aguiar (mollokhan) + - Walter Doekes + - Antoine (antoinela_adveris) + - uncaught + - Sergio Santoro + - voodooism + - Jan Christoph Beyer + - Kubicki Kamil (kubik) + - Per Sandström (per) + - casdal + - Kirill Lazarev + - Paul Andrieux + - Karim Cassam Chenaï (ka) - Serhiy Lunak (slunak) - - Igor Timoshenko (igor.timoshenko) - - Tero Alén (tero) - - Valentin Nazarov - - MGatner - - Vacheslav Silyutin - - joris - - wetternest - - Valouleloup - - Thomas Bibb - - mlievertz - - Erwin Dirks - - Agata - - Arnaud Buathier (arnapou) - - mark burdett - - Chansig - - Roman Orlov - - Simon Ackermann - - Anton (bonio) - - Victoria Quirante Ruiz (victoria) - - Evrard Boulou - - Pierre Gasté (pierre_g) - - abunch - - Kajetan Kołtuniak (kajtii) - - Quentin Favrie - - Johannes Goslar - - Moritz Borgmann (mborgmann) - - Dario Guarracino - - sam-bee - - Vadim Tyukov (vatson) - - ddebree + - Oleksii Bulba + - Nei Rauni Santos (nrauni) + - Brandon Kelly (brandonkelly) + - Sébastien HOUZÉ + - Rafał + - Wouter Sioen (wouter_sioen) + - AbdelatifAitBara + - Mihai Nica (redecs) + - wiseguy1394 + - G.R.Dalenoort + - Will Rowe + - Janusz Jabłoński (yanoosh) + - Mikkel Paulson + - rewrit3 + - Nicolas Sauveur (baishu) + - Lesnykh Ilia - Karel Syrový - - Sander van der Vlugt (stranding) - - Maxime PINEAU - - Jon Green (jontjs) - - Pierrick Charron - - Jason Schilling (chapterjason) - - Lebnik - - Maciej Schmidt - - Joe Springe - - Jan Emrich - - Junaid Farooq (junaidfarooq) - - Sergio Santoro - - Benjamin Dos Santos - - Ilia Lazarev (ilzrv) - - Alexander Cheprasov - - Danijel Obradović - - Craig Menning (cmenning) - - Balázs Benyó (duplabe) - - Andrey Ryaguzov - - Bert Hekman - - Geoffrey Pécro (gpekz) - - kernig - - wesign (inscrutable01) - - j0k (j0k) - - Mas Iting - - Vincent AMSTOUTZ (vincent_amstz) - - Georgi Georgiev - - Sepehr Lajevardi - - thib92 - - izenin - - Francisco Facioni (fran6co) - - afaricamp - - Jörg Rühl - - martijn - - Misha Klomp (mishaklomp) - - Christoph Kappestein - - Markus - - JG (jege) - - Michael Orlitzky - - Farhad Hedayatifard - - Shaun Simmons - - PierreRebeilleau - - dinitrol - - tirnanog06 - - Benny Born - - Ahmad Mayahi (ahmadmayahi) - - Mohamed Karnichi (amiral) - - Wahyu Kristianto (kristories) - - Giuseppe Campanelli - - Anton Zagorskii - - Mykola Zyk - - Kamil Szalewski (szal1k) - - mantulo - - Johannes - - Yuriy Potemkin + - Markus Staab + - Egor Gorbachev + - Oleksii Svitiashchuk + - Daniel Perez Pinazo (pitiflautico) + - Derek Bonner + - phuc vo (phucwan) + - tourze + - Sander Coolen (scoolen) + - Remi Collet + - Benjamin RICHARD + - Tony Vermeiren (tony) + - m.chwedziak + - Cyrille Jouineau (tuxosaurus) + - Lukas Naumann + - Serge (nfx) + - Yann LUCAS (drixs6o9) + - julien_tempo1 (julien_tempo1) + - Frankie Wittevrongel + - Gilles Gauthier + - Nicholas Byfleet (nickbyfleet) + - Bernard van der Esch (adeptofvoltron) + - Ph3nol + - maxime.perrimond + - jc + - Jaap van Otterdijk (jaapio) + - Gusakov Nikita (hell0w0rd) + - Curtis (ccorliss) + - David de Boer (ddeboer) + - qsz + - paullallier + - Gerard + - Yurun + - Matt Daum (daum) + - Ilya Bulakh + - Tom Corrigan (tomcorrigan) + - rhel-eo + - Jiri Falis + - Gilles Doge (gido) + - Gustavo Adrian + - Malaney J. Hill + - Xesau + - Ahmed EBEN HASSINE (famas23) + - andrey-tech + - tadas + - Abudarham Yuval + - Andy Stanberry + - Mark Pedron (markpedron) + - Andreas Allacher + - Trevor N. Suarez (rican7) + - Pierre-Olivier Vares (povares) + - Ruben Jansen + - Jeroen de Graaf + - Romain Dorgueil + - Christopher Parotat + - Ikhsan Agustian + - Lucas Bustamante + - Vincent Godé + - Keri Henare (kerihenare) + - Paul L McNeely (mcneely) + - Thomason, James + - Arkalo2 + - František Maša + - Eno Mullaraj (emullaraj) - Antonio Angelino - - Michael Nelson - - Tristan Bessoussa (sf_tristanb) - - Robert Kopera - - Andreas - - Ulugbek Miniyarov - - Dennis Smink (dsmink) - - Sebastian Utz - - LoginovIlya - - Emilie Lorenzo - - Nathan DIdier (icz) - - Muhammed Akbulut - - fduch (fduch) - - Kris Buist + - Lucas Matte + - Arnaud + - dangkhoagms (dangkhoagms) + - Valentin Barbu (jimie) + - Rémi Faivre (rfv) + - ncou + - Ionel Scutelnicu (ionelscutelnicu) + - Thomas Chmielowiec + - Yoann MOROCUTTI + - Mauro Foti (skler) + - Zuruuh + - Thorsten Hallwas + - Markus Tacker + - Gerben Wijnja + - Wickex + - Raphaël Droz + - tinect (tinect) - Thibaut Chieux - mwos - - Stefan Moonen - - Laurens Laman - - Hugo Fonseca (fonsecas72) - - Marc Duboc (icemad) - - Sezil - - Oleksii Bulba - - Clément R. (clemrwan) - - Wouter Ras - - Oliver Hoff - - Valery Maslov (coderberg) - - Stephan Wentz (temp) - - Nathanael d. Noblet - - Darius Leskauskas (darles) - - Dawid Nowak - - Marcin Chwedziak - - Diego Aguiar (mollokhan) - - Walter Doekes - - Antoine (antoinela_adveris) - - uncaught - - Ilya Bulakh - - Kovacs Nicolas - - Stano Turza - - Joel Marcey - - Clément Bertillon (skigun) - - Marco Wansinck (mwansinck) - - Tomáš Korec (tomkorec) - - mboultoureau - - William Thomson (gauss) - - Simon Müller (boscho) - - Karim Miladi - - otsch - - René Landgrebe - - Daniel Bannert - - Abdelilah Jabri - - Tobias Speicher - - Marcel Pociot (mpociot) - - Bernard van der Esch (adeptofvoltron) - - Aleksejs Kovalovs (aleksejs1) - - Lyubomir Grozdanov (lubo13) - - Tomas Kmieliauskas - - Waqas Ahmed - - Karim Cassam Chenaï (ka) - - Shamimul Alam - - Martin Pärtel - - marbul - - Mikkel Paulson - - Klaus Purer - - Richard Quadling - - Alex Nostadt - - Camille Islasse - - Cedric BERTOLINI (alsciende) - - Eviljeks - - Marcel Siegert - - AUDUL - - Michal Forbak - - Paul Matthews - - Ashura - - Matt Brunt - - Simone Di Maulo (toretto460) - - David Zuelke - - Nikita Sklyarov + - Signor Pedro + - Damien Harper (damien.harper) + - Sven Nolting - Fabian Haase - seho-nl - - Evgeniy Tetenchuk - - chesteroni (chesteroni) - - divinity76 - - Pavol Tuka - - Armando - - Matthew Burns - - Walther Lalk - - Thierry Marianne - - Frank Jogeleit - - Arrilot - - tomasz-kusy - - Vincent Godé - - Floran Brutel (notFloran) (floran) - - Kousuke Ebihara (co3k) - - Bart Brouwer (bartbrouwer) - - Elías Fernández - - Samael tomas - - pthompson - - georaldc - - Zoran Makrevski (zmakrevski) - - Kirill Nesmeyanov (serafim) - - EXT - THERAGE Kevin - - Vladimir Melnik - - Mamikon Arakelyan (mamikon) - - BiaDd - - wesleyh - - Bart Ruysseveldt - - Alexandre Tranchant (alexandre_t) - - fmarchalemisys - - Ganesh Chandrasekaran (gxc4795) - - szymek - - nerdgod - - Giorgio Premi - - Gerrit Drost - - Billie Thompson - - Kaipi Yann - - Cantepie - - Abderrahman DAIF (death_maker) - - Prasetyo Wicaksono (jowy) - - Bruno BOUTAREL - - Alexandre Segura - - Anthony Tenneriello - - muchafm - - Clement Herreman (clemherreman) - - Yoann MOROCUTTI - - Frederic Godfrin - - Matthew Foster (mfoster) - - phc - - jfcixmedia - - e-ivanov - - Fabian Kropfhamer (fabiank) - - Iain Cambridge - - Pierre Rineau - - Zuruuh - - andreabreu98 - - Xesau - - Ahmed EBEN HASSINE (famas23) - - pawel-lewtak - - Courcier Marvin (helyakin) - - Imangazaliev Muhammad (imangazaliev) - - Alexander Kurilo (kamazee) - - Christian - - Robert Meijers - - Mehdi Mabrouk (mehdidev) - - Paul Le Corre + - eRIZ + - db306 + - Jessica F Martinez + - Volker Killesreiter (ol0lll) + - Ilya Chekalsky + - Matt Drollette (mdrollette) + - Jakub Vrána + - Renato Mendes Figueiredo + - Cedrick Oka + - Raul Rodriguez (raul782) + - Agustin Gomes + - Freek Van der Herten (freekmurze) + - Dr. Gianluigi "Zane" Zanettini - Georg Ringer (georgringer) - - Marion Hurteau (marionleherisson) - - Nilmar Sanchez Muguercia - - Haritz - - Eric Caron - - Stefan Oderbolz - - Szymon Kamiński (szk) - - Samuel Gordalina (gordalina) - - Thomas Baumgartner (shoplifter) - - Serhii Smirnov - - Robert Queck - Tristan Kretzer - - Marvin Butkereit - - ssilatel - - Phillip Look (plook) - - detinkin - - František Maša - - Vincent Vermeulen - - Pete Mitchell (peterjmit) + - Marcus Stöhr (dafish) + - Benjamin Laugueux + - Artyum Petrov + - Piers Warmers + - Gert de Pagter + - Evgeny Efimov (edefimov) + - Rares Vlaseanu (raresvla) + - Hans Höchtl (hhoechtl) + - Even André Fiskvik + - Pierre Sv (rrr63) + - Stephen Clouse + - Jakub Caban (lustmored) + - Joris Garonian (grifx) + - mieszko4 + - Ismail Turan + - Pablo Maria Martelletti (pmartelletti) + - mlievertz + - Andreas Heigl (heiglandreas) + - Sjoerd Adema + - Wojciech Sznapka + - Simon Sargeant + - Constantine Shtompel + - ChS + - Juliano Petronetto + - A. Pauly + - Mario Young + - Thomas Dutrion (theocrite) + - Alexandre Jardin (alexandre.jardin) + - rogamoore + - Gerrit Drost + - Billie Thompson + - jersoe + - Alexey Popkov + - gndk + - Schuyler Jager (sjager) + - cilefen (cilefen) + - Kuzia + - Julian Krzefski + - David Gorges (davidgorges) + - Eduardo García Sanz (coma) + - Juan Miguel Besada Vidal (soutlink) - Sven Scholz - - Wojciech Gorczyca - - Jonathan Gough + - Jannik Zschiesche + - BenjaminBeck + - jean pasqualini (darkilliant) + - Daniel Basten (axhm3a) + - Frank Neff (fneff) + - hainey + - Adoni Pavlakis (adoni) + - Nicolas Le Goff (nlegoff) + - Jeremiah VALERIE + - danilovict2 + - Michael Lively (mlivelyjr) + - vltrof + - Ismo Vuorinen + - Sergey Fokin (tyraelqp) + - neghmurken + - Stano Turza + - GuillaumeVerdon + - DaikiOnodera + - markusu49 + - Florent Blaison (orkin) + - parhs + - Peter Potrowl + - Pierre Rebeilleau (pierrereb) + - Oriol Mangas Abellan (oriolman) + - Oleg Golovakhin (doc_tr) + - Kaipi Yann + - dinitrol + - Juanmi Rodriguez Cerón + - Kamil Madejski (kmadejski) + - k-sahara + - Ninos + - Jan Vernieuwe (vernija) + - Maxwell Vandervelde + - Timon van der Vorm + - Niels Robin-Aubertin + - Cesar Scur (cesarscur) + - Goran (gog) + - smokeybear87 + - Peter Orosz (ill_logical) + - Kris Buist + - Sander van der Vlugt (stranding) + - povilas + - Lars Ambrosius Wallenborn (larsborn) + - Thomas Beaujean + - Valérian Lepeule (vlepeule) + - Marien Fressinaud + - Ulrik McArdle + - Oleg Krasavin (okwinza) + - Jérôme Nadaud (jnadaud) + - Patryk Kozłowski + - Amine Yakoubi + - Alessandro Loffredo + - Dan (dantleech) + - Ryan Rud + - Albert Ganiev (helios-ag) + - Arnaud CHASSEUX + - GagnarTest (gagnartest) + - scourgen hung (scourgen) + - Chris Jones (leek) + - Alexander Onatskiy + - Xavier RENAUDIN + - Evgeny Anisiforov + - Yoann Chocteau (kezaweb) + - pritasil + - Foxprodev + - Wouter Diesveld + - SuRiKmAn + - Chris Shennan (chrisshennan) + - Konstantinos Alexiou + - Carlos Ortega Huetos + - Péter Buri (burci) + - Camille Baronnet + - Sebastian Schwarz + - Nguyen Tuan Minh (tuanminhgp) + - moldcraft + - Marcin Kruk + - Emilien Escalle + - Dominic Tubach + - Valouleloup + - Thomas Bibb + - Ralf Kühnel (ralfkuehnel) + - Shane Preece (shane) + - Jörn Lang + - Yann (yann_eugone) + - Christoph Kappestein + - Julius (sakalys) - Tomáš Polívka (draczris) - Brian Debuire - Jesper Søndergaard Pedersen (zerrvox) - - Andrew Marcinkevičius (ifdattic) - - Nicolas Pion - - Ariful Alam - - Sergei Gorjunov - - Edvinas Klovas - - Taras Girnyk - - Ser5 - - Cyrille Bourgois (cyrilleb) - - Sander Hagen - - Milos Colakovic (project2481) - - Jochen Mandl - - Bart Baaten - - Peter Breuls - - Viet Pham - - alireza - - Igor Plantaš - - Yuri Karaban - - casdal - - Kirill Lazarev - - cilefen (cilefen) - - Storkeus - - Jérémy (libertjeremy) - - Guillaume Aveline - - Cayetano Soriano Gallego (neoshadybeat) - - Amirreza Shafaat (amirrezashafaat) - - Olivier Scherler (oscherler) - - Claude Dioudonnat - - Pierre Foresi (pforesi) - - karl.rixon - - none (nelexa) - - Signor Pedro - - Damien Harper (damien.harper) - - Matteo Galli - - orlovv - - sal-car - - Aurimas Rimkus (patrikas) - - Jérémy Jourdin (jjk801) - - Joao Paulo V Martins (jpjoao) - - Lucas Bäuerle - - mlazovla - - Alejandro Diaz Torres - - Nicolas Tallefourtané (nicolab) - - Ivan Tse - - Luís Cobucci (lcobucci) - - Martynas Sudintas (martiis) - - Warwick - - Rutger Hertogh - - Diego Sapriza - - Aleksandar Dimitrov (netbull) - - m.chwedziak - - James Cowgill - - rchoquet - - David Soria Parra - - Michael Lively (mlivelyjr) - - drublic - - Abdelhakim ABOULHAJ - - Kevin Weber - - Juan Luis (juanlugb) - - andrey-tech - - tadas - - Abudarham Yuval - - sabruss - - Emirald Mateli - - Steve Hyde - - AbdelatifAitBara - - Manuele Menozzi - - René Kerner - - Michael Olšavský - - Pierre-Henry Soria 🌴 (pierrehenry) - - SuRiKmAn - - Philipp Fritsche - - Luis Galeas - - Flo Gleixner (redflo) - - Mickael GOETZ - - Loenix - - tourze - - Anton Sukhachev (mrsuh) - - Julien Manganne (juuuuuu) - - David Brooks - - Anamarija Papić (anamarijapapic) - - George Yiannoulopoulos - - oscartv - - Juan Mrad - - Yewhen Khoptynskyi (khoptynskyi) - - Luis Ramón López López (lrlopez) - - Kamil Madejski (kmadejski) - - Jaymin G - - Łukasz Chruściel (lchrusciel) - - Jérôme Dumas - - Damien Fernandes - - j.schmitt - - Josef Cech - - kaiwa - - Muhammad Aakash - - Kévin Gonella - - James Michael DuPont - - Oxan van Leeuwen - - Drew Butler - - Mbechezi Nawo - - Kevin Vergauwen (innocenzo) - - Jack Wright - - Mike Francis - - Ivo Valchev + - Dan Blows + - Roberto Guido + - Pascal Hofmann + - Christian Flach (cmfcmf) + - Andreas Hasenack + - Pierre Gasté (pierre_g) + - Houziaux mike - Antanas Arvasevicius - - Maxwell Vandervelde - - Ben Miller - - markusu49 - - Vladimir Mantulo (mantulo) - - Ariel J. Birnbaum - - Richard Hodgson + - Damian Sromek + - Jose Manuel Gonzalez (jgonzalez) + - Steven Dubois + - Dan Ionut Dumitriu (danionut90) + - Robert Korulczyk + - Andrew (drew) + - MaPePeR + - Matthieu + - Jean-Baptiste Nahan - Christoph König (chriskoenig) - - Valérian Galliat - - Máximo Cuadros (mcuadros) - - Fabrice Locher - - Sven Fabricius - - Jens Hatlak - - Rik van der Heijden - - Pierre Dudoret - - Thomas - - Alexis Lefebvre - - Ivan Tse - - Michael Steininger - - Harold Iedema - - Vladimir Sazhin - - stefan.r - - Normunds - - Andrei O - - Jordi Rejas - - Yevhen Sidelnyk - - Nicolas Badey (nico-b) - - Jan Marek (janmarek) - - Alexis BOYER - - Matthias Meyer - - tsufeki - - Lauris Binde (laurisb) - - Jeroen van den Nieuwenhuisen + - Josef Cech + - MightyBranch + - Guile (guile) + - Sorin Pop (sorinpop) + - Ian Carroll + - Citia (citia) + - Steeve Titeca (stiteca) + - James Sansbury + - Simon Bouland (bouland) + - Pierre Foresi (pforesi) + - Kim Laï Trinh + - Mario Blažek (marioblazek) + - Jairo Pastor + - Muhammad Aakash + - Vitalii + - Cedric BERTOLINI (alsciende) + - George Sparrow + - kwiateusz + - guangwu + - Alan ZARLI + - Juraj Surman + - Albert Prat - Daniele Cesarini (ijanki) - - Konrad - - Sören Bernstein - - michael.kubovic - - Beno!t POLASZEK - - Nicolas Appriou - - vlechemin - - Janusz Jabłoński (yanoosh) - - Carl Julian Sauter - - sebastian - - Norman Soetbeer - - RENAUDIN Xavier (xorrox) + - Michael Schneider + - BRAMILLE Sébastien (oktapodia) + - Abdiel Carrazana (abdielcs) + - Ostrzyciel + - Bizley + - Gijs Kunze + - Ole Rößner (basster) + - Joel Lusavuvu (enigma97) + - Eric Stern + - Oussama Elgoumri + - Adam Katz + - Shrey Puranik + - Viet Pham + - Kasper Hansen - Jonathan Vollebregt - Pablo Schläpfer + - Brooks Boyd + - Lance McNearney + - Julien Menth (cfjulien) + - Florent SEVESTRE (aniki-taicho) + - Danilo Silva + - Ha Phan (haphan) + - Ruud Arentsen + - tsilefy + - Jonny Schmid (schmidjon) + - error56 + - Léo VINCENT + - Camille Islasse - Nathan PAGE (nathix) - - Dr. Gianluigi "Zane" Zanettini - - MatTheCat - - cay89 - - Guile (guile) - - Patrick Kaufmann - - Gusakov Nikita (hell0w0rd) - - maxime.perrimond - - Gerard - - Yurun - - Matt Daum (daum) - - Hubert Moreau (hmoreau) - - Ángel Guzmán Maeso (shakaran) - - Radosław Benkel - - Laurent Clouet - - Brandon Antonio Lorenzo - - Andreas Allacher - - Troy Crawford - - Athorcis - - Mikkel Paulson - - Jakub Simon - - Pathpat - - Aaron Stephens (astephens) - - Goran Juric - - Wojciech Zimoń - - Babichev Maxim (rez1dent3) - - Carlos Ortega Huetos - - Kevin Herrera (kherge) - - sez-open - - robmro27 - - Anne-Julia Seitz - - Sergii Dolgushev (serhey) - - Sebastian Schwarz - - Bizley - - Yannick - - Duncan de Boer (farmer-duck) - - Florian Heller - - Andrii Serdiuk (andreyserdjuk) - - Knallcharge - - Andriy - - Schvoy Norbert (schvoy) - - Thomas Ploch - - Kristen Gilden - - Andrew Brown - - pdragun - - Sam Ward - - Ernesto Domato - - Alberto Aldegheri - - Arne Groskurth - - The Whole Life to Learn - - Gerhard Seidel (gseidel) - - Taylor Otwell - - Arthur Woimbée - - Ahmad El-Bardan - - Yannick Bensacq (cibou) - - Aaron Piotrowski (trowski) - - David Lumaye (tux1124) - - Tim Strehle - - Tom Newby (tomnewbyau) - - Dmitri Petmanson - - Jeroen de Graaf - - efeen - - Alan Bondarchuk - - rkerner - - fh-github@fholzhauer.de - - Hallison Boaventura (hallisonboaventura) - - valmonzo - - Linas Ramanauskas - - Javier Ledezma - - Benjamin Ellis - - Cyril Vermandé (cyve) - - alangvazq - - Sema - - alifanau - - Claudiu Cristea - - Billie Thompson - - Andreas Kleemann (andesk) + - Peter Bouwdewijn + - Nicolas ASSING (nicolasassing) + - Dominik Schwind (dominikschwind) + - MusikAnimal - czachor - Bart Reunes (metalarend) - - Maciej Zgadzaj - - Michael Bessolov - - Alessio Baglio (ioalessio) - - Neophy7e - - Ahmed Abdulrahman - - Andrew Tch - - Shaun Simmons - - Roberto Guido - - Markus Thielen - - David Barratt - - Artfaith - - VAN DER PUTTE Guillaume (guillaume_vdp) - - Kévin Gomez (kevin) - - Pavel Witassek - - Ronny (big-r) - - Götz Gottwald - - Piotr Zajac - - Loïc Vernet (coil) - - Mathieu Morlon (glutamatt) - - Kasperki - - Shude - - John VanDeWeghe - - Jordan Hoff - - Aurelijus Rožėnas - - Ph3nol - - Penny Leach - - Viktor Bajraktar (njutn95) + - Denis Golubovskiy (bukashk0zzz) + - Rémy LESCALLIER + - Soner Sayakci + - Artem Kolesnikov (tyomo4ka) + - Guillaume LECERF + - Ahto Türkson + - Norbert Schultheisz + - kaywalker + - pawel-lewtak + - Albin Kerouaton + - David Soms + - Vladimir Pakhomchik + - Mickael Perraud + - Stanislav Gamaiunov (happyproff) + - Bermon Clément (chou666) + - nietonfir + - Evgeniy Tetenchuk + - Jorrit Schippers (jorrit) + - Troy Crawford + - Stefan Oderbolz + - Ramon Cuñat - Mara Blaga - - tante kinast (tante) - - Tomas Javaisis - - Koalabaerchen - - Carsten Eilers (fnc) - - martkop26 - - NothingWeAre - - Flavian Sierk - - Sébastien COURJEAN - - Andras Ratz - - Pierre Rebeilleau (pierrereb) - - Hugo Posnic - - Sebastian Busch (sebu) + - Vladimir Vasilev (bobahvas) + - MrNicodemuz + - Junaid Farooq (junaidfarooq) + - Alessandro Tagliapietra (alex88) + - Marc Bennewitz + - Enrico + - Roy-Orbison + - Dave Heineman (dheineman) + - Valérian Galliat + - ivan + - Yorkie Chadwick (yorkie76) + - e-ivanov + - Fabian Kropfhamer (fabiank) + - Mike Francis + - Guillaume Aveline + - samuel laulhau (lalop) + - Loenix + - Simon Frost + - Lin Clark + - SenTisso + - Oxan van Leeuwen + - ADmad + - Arrilot + - Kévin Gonella + - Minna N + - Monet Emilien + - Brad Treloar + - Gabi Udrescu + - ffd000 + - Jeremy Benoist + - Vincent Chalamon + - Colin Michoudet + - Rikijs Murgs + - Jörg Rühl + - changmin.keum + - Sébastien HOUZE + - Maciej Zgadzaj + - Andrew Tch + - Kovacs Nicolas + - Emre Akinci (emre) + - Olexandr Kalaidzhy + - Artyom Protaskin + - Zdeněk Drahoš + - Luis Muñoz + - Attila Bukor (r1pp3rj4ck) + - Jm Aribau (jmaribau) + - Daniel Tschinder + - Víctor Mateo (victormateo) + - Vincent MOULENE (vints24) + - Simon Neidhold + - Henne Van Och (hennevo) + - Marc Torres + - Jean-Christophe Cuvelier [Artack] + - Ruben Kruiswijk + - Richard Heine + - Gordienko Vladislav + - Christophe Meneses (c77men) + - akimsko + - Mike Milano (mmilano) + - Nicolas Séverin + - Paul Ferrett + - Gabriel Birke + - Thomas Citharel (tcit) + - Jean Ragouin + - karl.rixon + - Aleksandr Dankovtsev + - Kamil Piwowarski (cyklista) + - Richard Čepas + - popnikos + - Clément R. (clemrwan) + - Andrew Brown + - Noel Light-Hilary + - Youpie + - Thijs Reijgersberg + - cmfcmf + - Philipp + - Julius Beckmann (h4cc) - Christian López Espínola (penyaskito) - - Eduardo García Sanz (coma) - - povilas - - Adrian - - Michael - - Sebastian Landwehr (dword123) - - Dariusz Ruminski - - Eduard Morcinek - - Steffen Persch (n3o77) - - ddegentesh - - Ashura - - Marc J. Schmidt (marcjs) + - Tom Maguire + - Xavier REN + - Gaylord Poillon (gaylord_p) + - Rein Baarsma (solidwebcode) + - Mike Gladysch + - Markus + - Tadcka + - Stefanos Psarras (stefanos) + - Yasmany Cubela Medina (bitgandtter) + - Simon / Yami + - Bart Brouwer (bartbrouwer) + - Kirill Roskolii + - Marco Wansinck (mwansinck) + - Tomáš Korec (tomkorec) + - Owen Gray (otis) + - Cyril HERRERA + - dropfen + - Tiago Garcia (tiagojsag) + - Andrea Ruggiero (pupax) + - Joeri Verdeyen (jverdeyen) + - Kélian Bousquet (kells) + - Pascal Woerde (pascalwoerde) + - Shyim + - Thanh Trần + - Enrico Schultz + - Javier Ledezma + - Rubén Calvo (rubencm) + - Rainrider + - Vlad Dumitrache + - Michal Kurzeja (mkurzeja) + - Anton Sukhachev (mrsuh) + - Starfox64 + - andreybolonin1989@gmail.com + - Tema Yud + - Mei Gwilym (meigwilym) + - Arkadiusz Kondas (itcraftsmanpl) + - Robert Campbell + - Taylor Otwell + - Staormin + - Vlad Gapanovich (gapik) + - Maxim Semkin + - Andrejs Leonovs + - Giuseppe Arcuti + - Erika Heidi Reinaldo (erikaheidi) + - RENAUDIN Xavier (xorrox) + - valmonzo + - David Lumaye (tux1124) + - Julien ARBEY + - Matthias Neid + - Sergey Novikov (s12v) + - BiaDd + - Nicolas Valverde + - LoginovIlya + - Julien Bianchi (jubianchi) + - Markus Staab + - Prasetyo Wicaksono (jowy) + - Christiaan Wiesenekker + - sebastian + - Diego Sapriza + - Axel Venet + - Ivan Tse + - Ricardo de Vries (ricardodevries) + - Nathanael d. Noblet + - Schvoy Norbert (schvoy) + - Hugo Posnic - Vašek Purchart (vasek-purchart) - Vic D'Elfant (vicdelfant) - - Cas + - Julien Manganne (juuuuuu) + - darnel + - Milos Colakovic (project2481) + - Yendric + - devel + - Ruslan Zavacky (ruslanzavacky) + - Alessandra Lai + - Albion Bame (abame) + - Cristobal Dabed + - Tobias Weinert (tweini) + - Ivo Valchev + - Jacek Wilczyński (jacekwilczynski) + - David Otton + - Klaas Naaijkens + - Rafał Toboła + - xdavidwu + - Romain Jacquart (romainjacquart) + - Ahmed Shamim Hassan (me_shaon) + - mindaugasvcs + - ibasaw + - Jules Matsounga (hyoa) + - Chris Tiearney + - Babichev Maxim (rez1dent3) + - Wing + - Jonathan Poston + - Zoran Makrevski (zmakrevski) + - Shaun Simmons + - Ross Tuck + - Jitendra Adhikari (adhocore) + - steveYeah + - oscartv + - Bojan + - Bouke Haarsma + - emilienbouard (neime) + - Craig Menning (cmenning) + - fbuchlak + - Vadim Tyukov (vatson) + - VolCh + - tirnanog06 + - curlycarla2004 + - AntoineDly + - David Courtey (david-crty) + - Laurent Clouet + - Jeroen de Boer + - Ayke Halder - Javan Eskander - - Morimoto Ryosuke - - Laurent Bachelier (laurentb) - - Rafael Tovar - - tamcy - - Dmitriy Tkachenko (neka) - - Andre Johnson - - Gert de Pagter - - Kuzia - - Sergiy Sokolenko - - Houziaux mike - - Frank Schulze (xit) - - Guillaume Lajarige (molkobain) - - David de Boer (ddeboer) - - Gerard Berengue Llobera (bere) - - Damien Vauchel (damien_vauchel) - - jprivet-dev - - pborreli - - Dcp (decap94) - - Charly Goblet (_mocodo) - - Thomas Beaujean - - Rini Misini - - Evgeny Anisiforov - - Yoann Chocteau (kezaweb) - - Ibrahim Bougaoua - - BrokenSourceCode - - llupa - - Daniel Richter (richtermeister) - - Vladimir Chernyshev (volch) - - Alan Chen - - Justin Rainbow (jrainbow) - - Dan Patrick (mdpatrick) - - Rémi Faivre (rfv) - - Radek Wionczek (rwionczek) - - BilgeXA - - Pchol - - Ben Gamra Housseine (hbgamra) - - wiseguy1394 - - adam-mospan - - Harry Wiseman - - ADmad - - Łukasz Giza (destroyer) - - Marc Bennewitz - - Kirill Roskolii - - Gonzalo Míguez - - adenkejawen - - JuntaTom (juntatom) - - Felix Marezki - - Juan Traverso - - goabonga - - Romain Geissler - - Patrick Daley (padrig) - - Franz Liedke (franzliedke) - - Dalibor Karlović - - Erfan Bahramali - - Zander Baldwin - - Bohdan Pliachenko - - Till Klampaeckel (till) - - Yannick Vanhaeren (yvh) - - Saem Ghani - - Sander Marechal - - Robin Kanters (anddarerobin) - - Olexandr Kalaidzhy - - Lucas Matte - - Success Go - - Arend Hummeling - - Dennis Tobar - - DerManoMann - - Tyler Stroud - - Clemens Krack - - Oliver Klee - - botbotbot - - Dan Finnie - - Philipp Kretzschmar - - Maximilian Berghoff (electricmaxxx) - - Quique Porta (quiqueporta) - - Bruno Baguette - - nyro (nyro) - - Ioana Hazsda (ioana-hazsda) - - Edwin - - lol768 - - Vallel Blanco - - Arend-Jan Tetteroo - - Peter Culka - - Tom Kaminski - - developer-av - - Vivien - - dened + - Ivan Pepelko (pepelko) + - Mohammad Ali Sarbanha (sarbanha) + - DidierLmn + - Pierre Tachoire + - Ignacio Alveal + - Samuel Vogel (samuelvogel) + - Valentin + - Cayetano Soriano Gallego (neoshadybeat) + - Matteo Giachino (matteosister) + - Benny Born + - Pablo Ogando Ferreira + - downace + - David Lima + - Mas Iting + - Qingshan Luo + - Alex Vasilchenko + - Bram Tweedegolf (bram_tweedegolf) + - Andrii Serdiuk (andreyserdjuk) + - Gerhard Seidel (gseidel) + - Mehdi Achour (machour) + - Victoria Quirante Ruiz (victoria) + - DSeemiller + - Kevin Verschaeve (keversc) + - sdkawata + - Jordi Llonch (jordillonch) + - Kirill Nesmeyanov (serafim) + - benatespina (benatespina) + - Maxime Corteel (mcorteel) + - Maarten Nusteling (nusje2000) + - pkowalczyk + - Hein Zaw Htet™ + - Matthias Larisch + - Mo Di (modi) + - Gleb Sidora + - Dawid Sajdak + - Peter Simoncic + - phc + - Giorgio Premi + - Simon Müller (boscho) + - Andoni Larzabal (andonilarz) + - WoutervanderLoop.nl + - Michaël VEROUX - Bert ter Heide (bertterheide) - - Flinsch - - Marek Víger (freezy) - - Jeremy Bush - - agaktr - - Jorge Vahldick (jvahldick) - - Seyedramin Banihashemi (ramin) - - Trevor N. Suarez (rican7) - - Pierre-Olivier Vares (povares) - - Ruben Jansen - - Egor Gorbachev - - Yann LUCAS (drixs6o9) - - Philippe Degeeter (pdegeeter) - - Citia (citia) - - Steeve Titeca (stiteca) - - Vladislav Vlastovskiy (vlastv) - - shreypuranik - - Bradley Zeggelaar - - Paul Ferrett - - Sandro Hopf (senaria) - - TheMhv - - Kirk Madera - - Ben Oman - - caalholm - - Jérémie Broutier - - Thomas Ferney (thomasf) - - Kamil Musial - - Jeremiah VALERIE - - Markus Ramšak - - Oleg Golovakhin (doc_tr) - - Igor Kokhlov (verdet) - - PatrickRedStar - - Vincent Chalamon - - Rafał Treffler - - Albin Kerouaton - - David Soms - - Rainrider - - Vlad Dumitrache - - david-binda - - brian978 - - neFAST - - ivan - - Yorkie Chadwick (yorkie76) - - Wing - - guangwu - Bruno Rodrigues de Araujo (brunosinister) - - Grégoire Rabasse - Cas van Dongen - Laurent G. (laurentg) - - Kevin Jansen - - Kevin Nadin (kevinjhappy) - - temperatur - - zorn - - Pieter Jordaan + - Sebastian Utz + - Felix Eymonot (hyanda) + - Mathieu MARCHOIS (mmar) + - Rini Misini + - Bruno Ziegler (sfcoder) + - Przemysław Piechota (kibao) - Peter Gribanov - - jonmldr - - RFreij - - Christian Eikermann - - Yohan Giarelli (frequence-web) - - Nacho Martin (nacmartin) - - Rénald Casagraude (rcasagraude) - - Koray Zorluoglu - - Norbert Schultheisz - - Anthony Moutte + - Giuseppe Campanelli + - Patrik Patie Gmitter + - Joe + - Georgi Georgiev + - Bernd Matzner (bmatzner) + - Peter Breuls + - Andreas Allacher + - Oleh Korneliuk + - everyx - VojtaB - - Rafał Muszyński (rafmus90) - - Oliver Eglseder - - Mark Topper - - azine - - Thomas Dutrion (theocrite) - - Alexandre Jardin (alexandre.jardin) - - Stelian Mocanita (stelian) - - Steven Dubois - - Jakub Caban (lustmored) - - Joris Garonian (grifx) - - Bhujagendra Ishaya - - André Laugks - - Rémi Leclerc - - Aaron Somi - - Samuel Vogel (samuelvogel) - - Simon / Yami - - twifty - - Artem (digi) - - Sami Mussbach - - Sorin Gitlan (forapathy) - - Ricardo de Vries (ricardodevries) - - Javier Núñez Berrocoso (javiernuber) - - Sorin Pop (sorinpop) - - Artem Kolesnikov (tyomo4ka) - - Gustavo Adrian - - kwiateusz - - Elías (eliasfernandez) - - kshida - - Peter Zwosta - - Andrzej - - Cédric Lahouste (rapotor) - - karolsojko - - v.shevelev - - Pierre-Louis LAUNAY - - Oksana Kozlova (oksanakozlova) - - Valérian Lepeule (vlepeule) - - Ernest Hymel - - Andrea Civita - - excelwebzone - - Daniel González Zaballos (dem3trio) - - spdionis - - Thibault G - - Sam Anthony - - Matthias Bilger - - Eugene Babushkin (warl) - - Thibaut Arnoud (thibautarnoud) - - Malte Wunsch (maltewunsch) - - Jan Vernarsky - - Sébastien Decrême (sebdec) - - Dominik Pesch (dombn) - - Thomas Boileau (tboileau) - - Víctor Mateo (victormateo) - - Vincent MOULENE (vints24) - - Simon Neidhold - - Henne Van Och (hennevo) - - Marc Torres - - Yendric - - Daniel Rotter (danrot) - - Philipp Hoffmann (philipphoffmann) - - Dmitry Korotovsky - - Alessandro Tagliapietra (alex88) - - tatankat - - Cláudio Cesar - - Gennadi Janzen - - Zdeněk Drahoš - - Xavier REN - - Peter Potrowl - - Damien Fayet (rainst0rm) + - Kevin Jansen + - Brian Freytag + - Sylvain Lorinet + - Jakub Simon + - Jeremy David (jeremy.david) + - Ville Mattila + - bch36 + - Benjamin Franzke + - Ulugbek Miniyarov + - Thomas Counsell + - lerminou + - Wojciech Błoszyk (wbloszyk) + - Thibaut Salanon + - Ruud Seberechts + - Luis Galeas + - Arseny Razin + - Paul LE CORRE + - Lance Chen + - Shamimul Alam + - Claus Due (namelesscoder) + - Erik van Wingerden - Daniel Mecke (daniel_mecke) + - Ilia Sergunin (maranqz) + - gondo (gondo) + - raplider + - adenkejawen + - RAHUL K JHA + - Tim van Densen + - natechicago + - Agata + - Matthew Burns + - Joseph Maarek + - Alexander Menk - Sergey Yuferev - - cmfcmf - - Philipp + - Ramazan APAYDIN (rapaydin) + - Stéphane Seng (stephaneseng) + - Andrey Chernykh + - Talha Zekeriya Durmuş + - Rudy Onfroy + - Adrien Samson (adriensamson) + - Mantas Urnieža + - dima-gr + - Abdulkadir N. A. + - sarah-eit + - amcastror + - michalmarcinkowski + - Josef Hlavatý + - Ivan Yivoff + - pborreli + - Tomanhez + - Žan V. Dragan + - Andrea Quintino (dirk39) + - rvoisin + - satalaondrej + - Mohamed Karnichi (amiral) + - Kérian MONTES-MORIN (kerianmm) + - Olatunbosun Egberinde + - Mehrdad + - Sandro Hopf (senaria) + - Gabriel Moreira + - Simone Di Maulo (toretto460) + - JG (jege) + - Michal Gebauer + - EdgarPE + - Tayfun Aydin + - Luciano Mammino (loige) + - Manatsawin Hanmongkolchai + - Angel Fernando Quiroz Campos (angelfqc) + - Hugo Sales + - Lucas Bäuerle + - carlos-ea + - Marcel Siegert + - Michal Forbak + - Eduard Morcinek + - Steffen Persch (n3o77) + - Christoph Krapp + - Stephen Lewis (tehanomalousone) + - Matthieu Prat + - Farid Jalilov + - Chris Tickner + - Illia Antypenko (aivus) + - Michael Dawart (mdawart) + - Pavel Stejskal (spajxo) + - Antoine Leblanc + - Thomas Boileau (tboileau) + - Emmanuel Vella (emmanuel.vella) + - Hans N. Hjort + - Charles Sanquer (csanquer) + - Hadrien Cren (hcren) + - Ondřej Frei + - Sergei Gorjunov + - Matteo Galli + - Anne-Julia Seitz + - Iwan van Staveren (istaveren) + - InbarAbraham + - Dennis Smink (dsmink) + - Patrick Daley (padrig) + - ghazy ben ahmed + - sez-open + - robmro27 + - Walther Lalk + - Bálint Szekeres + - Bernat Llibre Martín (bernatllibre) + - Duncan de Boer (farmer-duck) + - Steve Müller + - Pchol + - Roman Igoshin (masterro) + - Radek Wionczek (rwionczek) + - djordy + - Frank Naegler + - Till Klampaeckel (till) + - Diego Campoy + - PabloKowalczyk + - Michael Steininger + - Aleksandar Dimitrov (netbull) + - Maciej Schmidt - Maksym Romanowski (maxromanovsky) - Matt Ketmo (mattketmo) - - Pedro Silva - - Max Summe - - Hein Zaw Htet™ - - Vasily Khayrulin (sirian) - - Eric Stern - - cthulhu - - Constantine Shtompel - - Will Rowe - - Ilia Sergunin (maranqz) - - Josef Hlavatý - - Jared Farrish - - Matthias Neid - - Javier Espinosa (javespi) - - Ibon Conesa (ibonkonesa) - - Michal Trojanowski - - César Suárez (csuarez) - - Raito Akehanareru (raito) + - roog + - Arthur Woimbée + - Ahmad El-Bardan + - Stephen + - Marcel Pociot (mpociot) - Valmont Pehaut-Pietri (valmonzo) - - Ivo Valchev - - Jacek Wilczyński (jacekwilczynski) - - andreybolonin1989@gmail.com - - Ramon Kleiss (akathos) - - Tim Jabs (rubinum) - - Nicolas Bondoux (nsbx) - - Julia - - Mike Milano (mmilano) - - Nicolas Séverin - - Pablo Ogando Ferreira - - Boris Betzholz - - Stephanie Trumtel (einahp) - - Artem (nexim) - - Rein Baarsma (solidwebcode) - - Evgeniy Koval - - Alexandru Patranescu - - Gijs Kunze - - Omar Yepez (oyepez003) - - Felicitus - - Lars Ambrosius Wallenborn (larsborn) + - Max Summe + - Felix Marezki + - Rick Prent + - skalpa + - Andrea Giannantonio + - Yannick + - martijn + - Matthias Meyer + - Raphaëll Roussel + - Konrad + - Jean-Guilhem Rouel (jean-gui) - Michał Dąbrowski (defrag) - - Stefan Graupner (efrane) - - Justin Reherman (jreherman) - - dasmfm - - Sebastian Ionescu - - Patrizio Bekerle - - Xavier RENAUDIN - - Patrik Patie Gmitter - - Joe - - Jelle Bekker (jbekker) - - Marcin Szepczynski (szepczynski) - - Wojciech Skorodecki - - Evert Jan Hakvoort - - andreyserdjuk - - Camille Dejoye (cdejoye) - - Mark Pedron (markpedron) - - Dan Ionut Dumitriu (danionut90) - - Robert Korulczyk - - Andrew (drew) - - Brian Freytag - - MaPePeR - - taiiiraaa - - Jontsa - - benatespina (benatespina) - - GagnarTest (gagnartest) - - Oriol Mangas Abellan (oriolman) - - Zan Baldwin (zanderbaldwin) - - Pavel Golovin (pgolovin) - - Kevin Dew - - Peter Trebaticky - - Guillermo Gisinger (t3chn0r) - - 2manypeople - - Jordi Llonch (jordillonch) - - julien_tempo1 (julien_tempo1) - - Dominik Ritter (dritter) - - Jean-Christophe Cuvelier [Artack] - - Stefanos Psarras (stefanos) - - Damon Jones (damon__jones) - - parinz1234 - - Yannick Warnier (ywarnier) - - Pieter - - Michal Čihař - - ibasaw - - Aleksandr Dankovtsev - - John Edmerson Pizarra - - Agustin Gomes - - LubenZA - - ReScO - - Moritz Kraft (userfriendly) - - dantleech - - Zacharias Luiten - - Samy D (dinduks) - - Angel Koilov (po_taka) - - david perez (davidpv) - - Roger Webb - - ureimers - - akimsko - - Youpie - - Yasmany Cubela Medina (bitgandtter) - - fabi - - Christiaan Wiesenekker - - steveYeah - - sdkawata + - fduch (fduch) + - Markus Reinhold + - Pawel Szczepanek (pauluz) + - Edvinas Klovas + - joris - RTUnreal - - Johan - - amcastror - - michalmarcinkowski - - dakur - - Steve Marvell - - Richard Trebichavský - - Tomas Liubinas - - Mehrdad - - Geoffrey Monte (numerogeek) - - alanzarli - - Jimmy Leger (redpanda) - - Valentin - - Michel Bardelmeijer - - Gerben Wijnja - - Jörn Lang - - Christian Flach (cmfcmf) - - Ross Tuck - - Gabi Udrescu - - ffd000 - - Amine Yakoubi - - Alessandro Loffredo - - Mark Beech (jaybizzle) - - Guillaume Sainthillier (guillaume-sainthillier) - - Markus Staab - - Ahmed HANNACHI (tiecoders) - - Gilles Gauthier - - mindaugasvcs - - Jules Matsounga (hyoa) - - Jon Cave - - Ruud Seberechts - - Zakaria AMMOURA (zakariaamm) - - Florian Cellier - - shreyadenny - - Gautier Deuette - - Peter Orosz (ill_logical) - - Peter van Dommelen - - Christian Wahler (christian) - - Jelte Steijaert (jelte) - - curlycarla2004 - - Pavinthan - - Ilya Vertakov - - Brooks Boyd - - Vladislav Rastrusny (fractalizer) - - Vlad Gapanovich (gapik) - - Andrejs Leonovs - - Daniel Perez Pinazo (pitiflautico) - - André Filipe Gonçalves Neves (seven) - - Evgeny Efimov (edefimov) - - Arnaud - - dangkhoagms (dangkhoagms) - - timaschew - - xaav - - Juan Ases García (ases) - - Rikijs Murgs + - DerStoffel + - tante kinast (tante) + - Dariusz Ruminski + - Markus Baumer + - Will Donohoe + - tomasz-kusy - Tomaz Ahlin - - Sebastian Drewer-Gutland (sdg) - - Tim Ward - - Talha Zekeriya Durmuş - - Pierre LEJEUNE (darkanakin41) - - Derek Lambert (dlambert) - - Jiri Falis - - Tom Maguire - - Paweł Tomulik - - Johannes - - satalaondrej - - Tony Vermeiren (tony) - - Thijs Reijgersberg - - Matthew Donadio - - Ha Phan (haphan) - - Alex Plekhanov - - Denis Golubovskiy (bukashk0zzz) - - Kai Dederichs - - kaywalker + - Lars Moelleken + - Dušan Kasan (dudo1904) + - Willem Verspyck + - Marin Bînzari (spartakusmd) + - Igor Kokhlov (verdet) + - Juan Ases García (ases) + - Tomáš Votruba + - Michael Olšavský + - André Laugks + - afaricamp + - John Edmerson Pizarra + - Julien Moulin (lizjulien) + - Asil Barkin Elik (asilelik) + - Haritz + - Vasily Khayrulin (sirian) + - Kirill Saksin + - lol768 + - Peter Thompson (petert82) + - Drew Butler + - Paweł Stasicki - pf - - Noel Light-Hilary - - Eric J. Duran - - Stanislau Kviatkouski (7-zete-7) - - Mikko Pesari + - David Christmann + - Ben Miller + - Daniel Londero (dlondero) + - Javier Alfonso Bellota de Frutos + - Marion Hurteau (marionleherisson) + - Tim Strehle + - Wotre + - Berat Doğan + - Guillaume Gammelin + - developer-av + - Silvio Ginter + - Maxime THIRY + - Mephistofeles + - Kevin Herrera (kherge) + - Jérémie Broutier + - Luis Ramirez (luisdeimos) - jdcook - - Adrian Philipp - - alsar - - boulei_n - - Alex Teterin (errogaht) - - Nicolas Roudaire - - tamirvs - - Michael Squires - - Temuri Takalandze (abgeo) - - Hoffmann András - - Hryhorii Hrebiniuk - - Dominic Luidold - - Thomas Bibaut - - Alberto Pirovano (geezmo) - - Ala Eddine Khefifi (nayzo) - - Lukas Naumann - - eRIZ - - David Vancl - - Simone Ruggieri - - Boullé William (williamboulle) - - Wojciech Błoszyk (wbloszyk) - - Jure (zamzung) - - Benjamin Long - - n-aleha - - Verlhac Gaëtan (viviengaetan) - - Valentin - - Michael Simonson (mikes) - - Keith Maika - - Masao Maeda (brtriver) - - Jordan de Laune (jdelaune) + - llupa + - AnotherSymfonyUser (arderyp) + - Wojciech Gorczyca + - Saem Ghani + - Tito Miguel Costa (titomiguelcosta) + - Nicolas Eeckeloo (neeckeloo) + - mohamed + - John VanDeWeghe + - Jordan Hoff + - Julia + - mlazovla + - Zander Baldwin + - Eugene Babushkin (warl) + - Thibaut Arnoud (thibautarnoud) + - Pavinthan + - David Brooks + - Igor Tarasov (polosatus) + - Vaidas Lažauskas + - Vladislav Rastrusny (fractalizer) + - Morimoto Ryosuke - MGDSoft - - Chihiro Adachi (chihiro-adachi) - - Ettore Del Negro - - Andre Eckardt (korve) - - Yiorgos Kalligeros - - max - - stloyd - - vlakoff - - Safonov Nikita (ns3777k) - - Dmitry Hordinky - - Gavin Staniforth - - Antoine Beyet - - Michal Gebauer - - Matthieu - - Kim Laï Trinh - - Linnaea Von Lavia - - Benoit Garret - - Bálint Szekeres - - BenjaminBeck - - Andrea Ruggiero (pupax) - - Tamás Szigeti - - Muharrem Demirci (mdemirci) - - Roma (memphys) - - scourgen hung (scourgen) + - wetternest - Bogdan - - Jody Mickey (jwmickey) - - GuillaumeVerdon - - Jakub Kisielewski - - Julien JANVIER (jjanvier) - - Jovan Perovic (jperovic) - - Alexandre Beaujour + - Victor Garcia + - Kevin Dew + - Sjors Ottjes + - Rafael Tovar + - Dan Kadera + - Tomas Javaisis + - Jack Wright + - Sam Ward + - Sergiy Sokolenko + - Jochen Mandl - PaoRuby - - Nil Borodulia - - Alexandre Fiocre (demos77) - - Andoni Larzabal (andonilarz) - - WoutervanderLoop.nl - - Abdiel Carrazana (abdielcs) - - Adam Katz - - paullallier - - Brian Graham (incognito) - - wallach-game - - Daniel Strøm - - Jessica F Martinez - - Jakub Sacha - - Jeroen De Dauw (jeroendedauw) - - Max Voloshin (maxvoloshin) - - Tito Miguel Costa (titomiguelcosta) - - danilovict2 - - Peter Bouwdewijn - - Michaël VEROUX - - Jeremy David (jeremy.david) - - Sebastian Göttschkes (sgoettschkes) - - mieszko4 - - Daniil Gentili - - Piet Steinhart - - Darryl Hein (xmmedia) - - Marcos Quesada (marcos_quesada) - - ivelin vasilev - - sensio - - Hossein Hosni - - Erika Heidi Reinaldo (erikaheidi) - - Nikita Popov (nikic) - - Thomas Citharel (tcit) - - Thomas BERTRAND (sevrahk) - - AlberT - - bch36 - - elattariyassine - - Filipe Guerra - - Benjamin Franzke - - Pablo Maria Martelletti (pmartelletti) - - Chris Tiearney - - Nicolas ASSING (nicolasassing) - - Adria Lopez (adlpz) - - Malaney J. Hill - - Jannik Zschiesche - - Дмитрий Пацура - - Matthias Larisch - - Lance Chen - - Pontus Mårdnäs - - Viktoriia Zolotova - - Joachim Krempel (jkrempel) - - Alexey Buyanow (alexbuyanow) - - voodooism - - Jean Ragouin - - Gaylord Poillon (gaylord_p) - - Andrey Chernykh - - Nguyen Tuan Minh (tuanminhgp) - - Frank Naegler - - David Windell - - Krzysztof Przybyszewski (kprzybyszewski) - - Sam Williams - - Gordienko Vladislav - - Andrew Carter (andrewcarteruk) - - Rares Vlaseanu (raresvla) - - Hans Höchtl (hhoechtl) - - Even André Fiskvik - - Pierre Sv (rrr63) - - Jānis Lukss - - Abdouni Karim (abdounikarim) - - Markus Baumer - - Matt Farmer - - Benoit Lévêque (benoit_leveque) - - Mihai Nica (redecs) - - Troy McCabe - - Cesar Scur (cesarscur) - - Goran (gog) - - Paul LE CORRE - - Albert Ganiev (helios-ag) - - Arnaud CHASSEUX - Daniel Kay (danielkay-cp) - - Lenar Lõhmus - - Aaron Scherer (aequasi) - - Kevin Mian Kraiker - - Peter Simoncic - - Maerlyn - - Neagu Cristian-Doru (cristian-neagu) - - Mostafa - - Daniel Kozák - - William Pinaud (docfx) - - Serge (nfx) - - Romain Dorgueil - - Christopher Parotat - - Ikhsan Agustian - - Lucas Bustamante - - Julien Moulin (lizjulien) - - Mauro Foti (skler) - - gitlost - - Mert Simsek (mrtsmsk0) - - PabloKowalczyk - - JakeFr - - Siragusa (asiragusa) - - Rodrigo Díez Villamuera (rodrigodiez) - - Andreas Streichardt - - Alexis MARQUIS - - Tom Panier (neemzy) - - Robin Duval (robin-duval) - - WaiSkats - - Victor Prudhomme - - Bogdan Rancichi (devck) + - Hubert Moreau (hmoreau) + - Kevin Nadin (kevinjhappy) + - tamcy + - Dan Patrick (mdpatrick) - Leonid Terentyev - - Damián Nohales (eagleoneraptor) - - Alexey Popkov - - Adoni Pavlakis (adoni) - - Nicolas Le Goff (nlegoff) - - Tadas Gliaubicas (tadcka) - - Lin Clark - - Mark de Haan (markdehaan) - - Marcello Mönkemeyer (marcello-moenkemeyer) - - Matej Žilák (teo_sk) - - rewrit3 - - Ladislav Tánczos + - Andrew Carter (andrewcarteruk) + - Peter Trebaticky + - Robert Meijers + - RFreij + - Matthias Bilger + - Nicolas Appriou + - Omar Yepez (oyepez003) + - Marko Vušak + - Vladislav Vlastovskiy (vlastv) + - Jérémy Jourdin (jjk801) + - Joao Paulo V Martins (jpjoao) + - otsch + - René Landgrebe + - gauss + - Darius Leskauskas (darles) + - Floran Brutel (notFloran) (floran) + - Yannick Bensacq (cibou) + - Aaron Piotrowski (trowski) + - Laurens Laman + - Matt Lehner + - Helmut Januschka + - Patrick Luca Fazzi (ap3ir0n) + - Jeremiah VALERIE + - Andreas Forsblom (aforsblo) + - Łukasz Giza (destroyer) + - d.huethorst + - Warwick + - Oliver Hoff + - Valery Maslov (coderberg) + - Bart Baaten + - Anton Zagorskii + - Mickael GOETZ + - NothingWeAre + - Sortex + - julien.galenski + - Mert Simsek (mrtsmsk0) + - Rutger Hertogh + - Tobias Genberg (lorceroth) + - Martijn Croonen + - tamirvs + - Andras Debreczeni + - caalholm + - szymek + - Peter van Dommelen + - Ilia Lazarev (ilzrv) + - Eric Krona + - ureimers + - Daniel Richter (richtermeister) + - Eduard Bulava (nonanerz) + - Gregório Bonfante Borba (bonfante) + - Osayawe Ogbemudia Terry (terdia) + - Javier Espinosa (javespi) + - Joe Springe - Dustin Wilson + - Ibon Conesa (ibonkonesa) + - Michal Trojanowski + - Michael Telgmann + - mboultoureau + - Damián Nohales (eagleoneraptor) + - Billie Thompson + - Andreas Kleemann (andesk) + - Mikhail Prosalov (mprosalov) + - Simon Asika + - Buster Neece + - Francisco Facioni (fran6co) + - Giovanni Albero (johntree) + - Ian Littman (iansltx) - Andrii Boiko - Dilek Erkut - - Danil - - Dmitry Simushev - - Juliano Petronetto - - Vincent LEFORT (vlefort) - - Staormin - - Gregório Bonfante Borba (bonfante) - - Pablo Borowicz - - CDR - - Jakub Vrána - - Pablo Monterde Perez (plebs) - - gondo (gondo) - - Anton Kroshilin - - Eric Krona - - raplider - - Michael Pohlers (mick_the_big) - - Dmitry (staratel) - - Matteo Giachino (matteosister) - - Sjoerd Adema - - Kai Eichinger - - Philip Frank - - Conrad Kleinespel (conradk) - - Jeffrey Cafferata (jcidnl) - - Willem Mouwen - - Saif Eddin G - - Ismail Turan - - Bastien Clément (bastienclement) - - Philip Dahlstrøm - - MusikAnimal - - carlos-ea - - Rafael Villa Verde - - Joseph FRANCLIN - - Oussama Elgoumri - - Andreas Forsblom (aforsblo) - - Blackfelix - - David Lima - - Mike Gladysch - - Maxim Semkin - - fruty - - Bernd Matzner (bmatzner) - - ShiraNai7 - - RichardGuilland - - Bjorn Twachtmann (dotbjorn) - - Pierre Schmitz - - Daniel Tschinder - - Aleksey Prilipko - - RevZer0 (rav) - - Karolis Daužickas (kdauzickas) - - Konstantin Chigakov - - Alexander Pasichnik (alex_brizzz) - - Gabriel Birke - - Freek Van der Herten (freekmurze) - - Owen Gray (otis) - - Stephen Lewis (tehanomalousone) - - Matthieu Prat - - Michael Dawart (mdawart) - - Cyril HERRERA - - dropfen - - RAHUL K JHA - - Abdulkadir N. A. + - Nicolas Badey (nico-b) + - Mykola Zyk + - Kamil Szalewski (szal1k) + - Elliot Anderson (elliot) + - Tero Alén (tero) + - Valentin Nazarov + - Adam Bramley - Jonathan Hedstrom - - Bert Ramakers - - Thanh Trần - - Enrico Schultz - - Juraj Surman - - Boris Medvedev - - Charles Sanquer (csanquer) - - Tayfun Aydin - - Hans N. Hjort - - Kélian Bousquet (kells) - - Pascal Woerde (pascalwoerde) - - Andreas Heigl (heiglandreas) - - Pierre Tondereau - - Wouter de Wild - - heccjj - - Abdouarrahmane FOUAD (fabdouarrahmane) - - Tom Corrigan (tomcorrigan) - - Chris McGehee - - Lesueurs Frédéric (fredlesueurs) - - demeritcowboy - - Andrea Giuliano (shark) - - Peter Potrowl - - Thomas Counsell - - rhel-eo - - roog - - neghmurken - - michal - - Martin Komischke - - Bogdan Scordaliu - - Adam Monsen (meonkeys) + - Amin Hosseini (aminh) + - Jorge Vahldick (jvahldick) + - Bruno BOUTAREL - Xavier Amado (xamado) - - Ahmad Al-Naib - - Piotr Antosik (antek88) - - Stephen - - Tischoi - - Nei Rauni Santos (nrauni) - - boite - - Brandon Kelly (brandonkelly) - - Benoit Mallo - - Sébastien HOUZÉ - - Adrien Foulon - - Alexandru Năstase - - Luciano Mammino (loige) - - Daniel Londero (dlondero) - - Javier Alfonso Bellota de Frutos - - Michal Kurzeja (mkurzeja) - - djordy - - Quentin Moreau (sheitak) - - Cosmin-Romeo TANASE - - Camille Baronnet - - Phobetor - - Timon van der Vorm - - Arseny Razin - - Sjors Ottjes - - Aarón Nieves Fernández - - Gunnar Lium (gunnarlium) - - Andrea Giannantonio - - Pavel.Batanov - - Rémy LESCALLIER - - Soner Sayakci - - Ahto Türkson - - Fabien D. (fabd) - - DaikiOnodera - - Chris Jones (leek) - - Buster Neece - - Albert Prat - - Ayke Halder - - Brian Freytag - - Greg Szczotka (greg606) - - Damian Sromek - - Marin Nicolae + - Thanos Polymeneas (thanos) + - Dawid Nowak + - Denys Voronin (hurricane) + - Oleg Sedinkin (akeylimepie) + - Richard van Velzen + - André Filipe Gonçalves Neves (seven) + - Bogdan Scordaliu + - Eric Schildkamp + - stefan.r + - Karlos Presumido (oneko) + - Vyacheslav Slinko + - Nick Stemerdink + - Clément LEFEBVRE (nemoneph) + - Joel Marcey + - Rodolfo Ruiz + - Vincent Vermeulen + - Jon Green (jontjs) + - Joshua Behrens (joshuabehrens) + - kernig + - Charly Goblet (_mocodo) + - Kevin Meijer + - Peter Zwosta + - Daniel Strøm + - adnen chouibi + - Alex Silcock + - Ernesto Domato + - tsufeki + - Iliya Miroslavov Iliev (i.miroslavov) + - elattariyassine + - Filipe Guerra + - Marcin Chwedziak + - timaschew + - Adrien Chinour + - temperatur + - zorn + - Andrzej + - Sorin Gitlan (forapathy) + - Alex Niedre + - evgkord + - Michael Squires + - Temuri Takalandze (abgeo) + - vlechemin + - Hoffmann András + - Valentin VALCIU + - Claude Dioudonnat + - Pablo Borowicz + - CDR + - Abdelilah Jabri + - Ferenczi Krisztian (fchris82) + - Alexander Bauer (abauer) + - Alex Olmos (alexolmos) + - Chris McGehee + - Nowfel2501 + - Alexis MARQUIS + - Daniel Tiringer + - muchafm + - Eviljeks + - David Zuelke + - alangvazq + - Sema + - alifanau + - Claudiu Cristea + - Giuseppe Petraroli (gpetraroli) + - Artem Oliinyk (artemoliynyk) + - Vladimir Chernyshev (volch) + - Justin Rainbow (jrainbow) + - taiiiraaa + - Botond Dani (picur) + - Marvin Butkereit + - Petr Jaroš (petajaros) + - Pavel Witassek + - Nicolas Bastien (nicolas_bastien) + - Ludek Stepan + - Mathieu TUDISCO (mathieutu) + - Andreas Frömer + - Ondřej Frei + - Aleksejs Kovalovs (aleksejs1) + - Lyubomir Grozdanov (lubo13) + - zolikonta + - Vladislav Iurciuc + - John Nickell (jrnickell) + - Carsten Eilers (fnc) + - martkop26 + - Tobias Feijten (tobias93) + - Courcier Marvin (helyakin) + - Dmytro Pigin (dotty) + - Daniele Orru' (danydev) + - Johan de Ruijter + - Dominik Ritter (dritter) + - ddebree + - Nikita Starshinov (biji) + - Nikita Popov (nikic) + - Sergii Dolgushev (sergii-swds) + - Nicolas Schwartz (nicoschwartz) + - Jakub Janata (janatjak) + - dasmfm + - Pierre Grimaud (pgrimaud) + - Matheus Gontijo + - Dan Wilga + - Thomas Chmielowiec (chmielot) + - Kousuke Ebihara (co3k) + - detinkin + - Felicitus + - David Joos (djoos) + - Irmantas Šiupšinskas (irmantas) + - Alexis BOYER + - Derek Stephen McLean + - Misha Klomp (mishaklomp) + - Nathan DIdier (icz) + - ging-dev + - Matt Farmer + - Benoit Lévêque (benoit_leveque) + - Dario Savella + - Jesper Noordsij + - Adel ELHAIBA (eadel) + - Adam Elsodaney (archfizz) + - Dionysis Arvanitis + - Sergio + - rkerner + - Julien JANVIER (jjanvier) + - ssilatel + - Phillip Look (plook) + - Krzysztof Przybyszewski (kprzybyszewski) + - Michał Marcin Brzuchalski (brzuchal) + - Nicolas - Rachid Hammaoui (makmaoui) - Vladimir Sadicov (xtech) - - Jeroen de Boer - - Sam Malone - - Flavien Knuchel (knuch) - - Peter Ward + - Aaron Somi + - v.shevelev + - Samuel Gordalina (gordalina) + - Thomas Baumgartner (shoplifter) + - peter - ollie harridge (ollietb) - - mshavliuk - - George Giannoulopoulos - - Malcolm Fell (emarref) - - Reda DAOUDI - - Ivan Pepelko (pepelko) - - Pierre Tachoire - - Minna N - - Dmytro Pigin (dotty) - - Daniele Orru' (danydev) - - Brad Treloar - - Dan (dantleech) - - Abderrahim (phydev) - - Markkus Millend - - Asrorbek Sultanov - - Emmanuelpcg - - Attila Bukor (r1pp3rj4ck) - - Vincent - - Gil Hadad - - Raphael de Almeida (raphaeldealmeida) - - Mohammad Ali Sarbanha (sarbanha) + - jack.thomas (jackthomasatl) + - Aurélien MARTIN + - Stefan Moonen + - Oliver Eglseder + - Mark Topper + - Stewart Malik + - Flavian Sierk + - Sébastien COURJEAN + - Viktoriia Zolotova + - Nicolas Lemoine + - Andrea Giuliano (shark) + - adhamiamirhossein - aetxebeste - - Nicolas Valverde - - Farid Jalilov - - Florian Morello - - Joseph Deray - - Nardberjean - - Arman - - Ismail Asci (ismailasci) - - Cristobal Dabed - - Keri Henare (kerihenare) - - Wickex - - Kevin Meijer - - Adrien Chinour - - Kasper Hansen - - Gerry Vandermaesen (gerryvdm) - - Elliot Anderson (elliot) - - Yoann MOROCUTTI - - Adam Bramley - - Krzysztof Pyrkosz - - qsz - - Halil Hakan Karabay (hhkrby) - - Jaap van Otterdijk (jaapio) + - JakeFr + - Yannick Vanhaeren (yvh) + - Flavien Knuchel (knuch) + - Carsten Nielsen (phreaknerd) + - Jeffrey Moelands (jeffreymoelands) + - Mark Ogilvie + - Gordienko Vladislav + - Lorenzo Adinolfi (loru88) + - Zan Baldwin (zanderbaldwin) + - Imangazaliev Muhammad (imangazaliev) + - Vitali Tsyrkin + - Olaf Klischat + - Rares Sebastian Moldovan (raresmldvn) + - Tischoi + - Wouter Ras + - Kevin Decherf + - Jules Lamur + - Flinsch + - Dmitry Hordinky + - Steve Frécinaux + - cay89 + - Maxime Aknin (3m1x4m) + - Tom Panier (neemzy) + - Derek Lambert (dlambert) + - Gonzalo Míguez + - Pieter Jordaan + - Daniel Kozák + - Guillermo Gisinger (t3chn0r) + - Alan Chen + - Alessio Baglio (ioalessio) + - Neophy7e + - Johannes + - ddegentesh + - PatrickRedStar + - Dariusz Czech + - Michel Bardelmeijer + - Paul Seiffert (seiffert) - Povilas S. (povilas) - - Kenjy Thiébault (kthiebault) - - Arkadiusz Rzadkowolski (flies) - - Felix Eymonot (hyanda) - - Joshua Behrens (joshuabehrens) - - Rosio (ben-rosio) - - Joan Cruz - - Bailey Parker - - Shiro - - Tim van Densen - - Chris Shennan (chrisshennan) - - Geoff - - Illia Antypenko (aivus) - - Maxime AILLOUD (mailloud) - - Dmytro Dzubenko - - nuncanada - - Yurii K - - Julien Menth (cfjulien) - - MightyBranch - - Alexandre Pavy - - Victor Macko (victor_m) - - Gary Houbre (thegarious) - - Marin Bînzari (spartakusmd) - - ging-dev - - J Bruni - - Markus Klein - - Bruno Nogueira Nascimento Wowk - - Toro Hill - - Christian Neff (secondtruth) - - Andrew Zhilin (zhil) - - 🦅KoNekoD - - GurvanVgx - - ondrowan - - Roromix - - Thomas Hanke - - Guillaume Smolders (guillaumesmo) - - Rene de Lima Barbosa (renedelima) - - Marc Jauvin - - Ryan Rogers - - Ronny López (ronnylt) - - Andy Raines - - Helmut Hummel (helhum) - - goohib - - linh - - Alexandre Melard - - Dennis Jaschinski (d.jaschinski) - - Tristan Pouliquen - - mlpo (mlpo) - - Alain Flaus (halundra) - - Dylan - - Silas Joisten (silasjoisten) - - enomotodev - - Julien Sanchez (sumbobyboys) - - “teerasak” - - Andrey Helldar - - inspiran - - Frédéric Bouchery (fbouchery) - - Vedran Mihočinec (v-m-i) - - Marco Jantke - - Bruno MATEU - - Dale.Nash - - George Dietrich - - Ian Phillips - - JK Groupe - - Cédric Girard - - Adam Prickett - - Luke Towers - - Florent Cailhol - - Charles-Henri Bruyand - - Vladimir Khramtsov (chrome) - - Yura Uvarov (zim32) - - Tijs Verkoyen - - root - - Myke79 - - cybernet (cybernet2u) - - Daan van Renterghem - - Matěj Humpál - - avi123 - - Franz Wilding (killerpoke) - - Ondřej Mirtes (mirtes) - - Kevin Auivinet - - Andrew Clark (tqt_andrew_clark) - - Benoit Leveque - - Benjamin Bender - - sauliusnord - - Miloš Milutinović - - jwaguet - - Antonio Peric-Mazar (antonioperic) - - Brieuc Thomas - - Alexander Janssen (tnajanssen) - - robin.de.croock - - creiner - - Jelle Kapitein - - Florian Guimier - - Rémi Blaise - - eminjk - - Ener-Getick - - Marcos Labad - - Christian Grasso (chris54721) - - Phil Davis - - Maxim Lovchikov - - Javier - - Martin Eckhardt - - Juga Paazmaya - - victor-prdh - - Makdessi Alex - - Martin Schophaus (m_schophaus_adcada) - - Adamo Crespi (aerendir) - - Michael van Tricht - - Sergei Shitikov - - Jens Schulze - - Max Grigorian (maxakawizard) - - Lukas Kaltenbach - - Andriy Prokopenko (sleepyboy) - - Tomasz (timitao) - - dlorek - - Karl Shea - - dsech - - Marc Lemay (flug) - - omerida - - Evgeny Z (meze) - - Dmitrii Fedorenko (dmifedorenko) - - Théo DELCEY - - mmokhi - - Greg Korba - - Martin Auswöger - - Denis Klementjev (dklementjev) - - Bart Wach - - Jonas Hünig - - Ahmed Abdou - - Pavel Barton - - Michael Genereux - - Janusz Mocek - - Antanas Arvasevicius - - sualko - - Chris de Kok - - Lin Lu - - Florian Caron (shalalalala) - - Martynas Narbutas - - Timothée BARRAY - - koyolgecen - - Artem Lopata - - Thomas Decaux - - Eddie Abou-Jaoude (eddiejaoude) - - tpetry - - djama - - Peter Smeets (darkspartan) - - Denis Kop - - Adriaan Zonnenberg - - Radoslaw Kowalewski - - Adiel Cristo (arcristo) - - Jenne van der Meer - - Sylvain METAYER - - Eric Hertwig - - Martijn Evers - - Pedro Magalhães (pmmaga) - - Nikola Svitlica (thecelavi) - - Dan Harper - - Vladislav Nikolayev (luxemate) - - wivaku - - craigmarvelley - - d-ph - - Felipy Amorim (felipyamorim) - - Matthew (mattvick) - - Erwan Nader (ernadoo) - - Guido Donnari - - Rich Sage - - Ksaveras Šakys (xawiers) - - Alexey Berezuev - - Per Modin - - Adam Wójs (awojs) - - Neil Katin - - Nicolas Macherey - - Wissame MEKHILEF - - Anna Filina (afilina) - - Matthew J Mucklo - - jack.shpartko - - Cedric Kastner (nurtext) - - mohammadreza honarkhah - - 蝦米 - - Alex Demchenko - - PLAZANET Pierre (pedrotroller) - - Mathieu Dewet (mdewet) - - Patrick Berenschot - - Anne-Sophie Bachelard - - Ron Gähler (t-ronx) - - Alexey Popkov - - Nicolas Martin (cocorambo) - - László GÖRÖG - - Guillaume BRETOU (guiguiboy) - - omniError - - alex - - rtek - - Wim Hendrikx - - misterx - - Emmanuel Dreyfus - - Xavier HAUSHERR - - Ema Panz - - Arrakis (arrakis) - - Eric Grimois - - Christian Schiffler - - Nathanaël Martel (nathanaelmartel) - - Pawel Smolinski - - Baptiste Leduc (bleduc) - - Houssem - - Şəhriyar İmanov (shehriyari) - - Muriel (metalmumu) - - Nico Hiort af Ornäs - - florian-michael-mast - - hjkl - - ergiegonzaga - - Dmitriy Derepko - - Ulrik Nielsen (mrbase) - - Arend Hummeling - - cgonzalez - - g123456789l - - Roman Tymoshyk (tymoshyk) - - CarolienBEER - - Foxprodev - - Aleksei Lebedev - - Ondřej Führer - - Roeland Jago Douma - - Bartłomiej Zając - - Evgeny (disparity) - - Fleuv - - Michał Strzelecki + - Cyrille Bourgois (cyrilleb) + - Michal Čihař + - Iain Cambridge + - Pierre Rineau + - Athorcis + - jamogon + - divinity76 + - Ernest Hymel + - Benjamin Ellis + - Martin Mandl (m2mtech) + - spdionis + - nuncanada + - Gil Hadad + - Sebastian Landwehr (dword123) + - Alan Scott + - Ángel Guzmán Maeso (shakaran) + - Alexander Cheprasov + - Edwin Hageman + - René Kerner + - Gerard Berengue Llobera (bere) - Alexandre Segura - - David Wolter (davewww) - - Krzysztof Menżyk (krymen) - - Bárbara Luz - - klemens - - aim8604 - - dantleech - - Sébastien Lévêque (legenyes) - - Fred Cox - - Yohann Tilotti - - Alexandru Bucur - - ConneXNL - - matze - - Nicolas Jourdan (nicolasjc) - - HellFirePvP + - Sylvain Just + - Markus Ramšak + - Mostafa + - Jonathan Gough + - Michael J + - Vladimir Melnik + - Mamikon Arakelyan (mamikon) - Johannes - - Francois Martin - - Nicolas Appriou - - inwebo veritas (inwebo) - - Sobhan Sharifi (50bhan) - - Nicolas Attard (nicolasattard) - - Robert-Jan de Dreu - - Tom Hart - - Yevgen Kovalienia - - Christian Morgan - - vladyslavstartsev - - Marvin Petker - - Vincent Chalnot - - Romain Pierre - - Alex Vo (votanlean) - - Viacheslav Sychov - - Amaury Leroux de Lens (amo__) - - Albert Bakker (babbert) - - Mathias Geat - - Joas Schilling - - bahram - - Aydin Hassan - - Steve Preston - - Ivo - - Bastien Picharles - - Oleg Mifle - - Thomas Rothe - - Simon Paarlberg (blamh) - - AlbinoDrought - - Martins Eglitis - - Michael Tibben - - Kacper Gunia (cakper) - - Jochen Bayer (jocl) - - Kevin EMO - - Tournoud (damientournoud) - - Jozef Môstka (mostkaj) - - Benjamin Paap (benjaminpaap) - - wusuopu - - Zlatoslav Desyatnikov - - Gabriel Solomon (gabrielsolomon) - - Marcin Nowak - - Charly Terrier (charlypoppins) - - Adam Kiss - - Peter Schultz - - simbera + - Ilya Vertakov + - Guillaume Loulier (guikingone) + - mantulo + - Dmitri Petmanson + - Ioana Hazsda (ioana-hazsda) + - Wim Godden (wimg) + - Frederik Schmitt + - Thibault G + - Vallel Blanco + - Michael Dowling (mtdowling) + - William Thomson (gauss) + - alireza + - Igor Plantaš + - luffy1727 + - Pablo Monterde Perez (plebs) + - Eric J. Duran + - Antonio Mansilla + - Stefano A. (stefano93) + - upchuk + - Cantepie + - Juan Gonzalez Montes (juanwilde) + - David Soria Parra + - Masao Maeda (brtriver) + - Julius Kiekbusch + - withbest + - Success Go + - Arend Hummeling + - Dennis Tobar + - DerManoMann + - Dan Finnie + - Philipp Kretzschmar + - Tim Jabs (rubinum) + - Nicolas Bondoux (nsbx) + - Michael Hudson-Doyle + - Nicolás Alonso + - Roman Tyshyk + - Benjamin BOUDIER + - Pierre-Emmanuel CAPEL + - Holger Lösken + - Dominik Pesch (dombn) + - Moritz Borgmann (mborgmann) + - Danijel Obradović + - Daniel Bannert + - Tobias Speicher + - Ahmad Al-Naib + - Piotr Antosik (antek88) + - Tom Houdmont + - thecaliskan + - Ilya Biryukov (ibiryukov) + - Ross Motley (rossmotley) + - andreabreu98 + - George Yiannoulopoulos + - Jakub Kisielewski + - Bohdan Pliachenko + - david-binda + - Arnaud Buathier (arnapou) + - Sergey Stavichenko (sergey_stavichenko) + - Stefan Kleff (stefanxl) + - Liverbool (liverbool) + - Gilbertsoft + - Choong Wei Tjeng (choonge) + - Damien Vauchel (damien_vauchel) + - Alex Plekhanov + - Stefan Koopmanschap + - Philipp Fritsche + - Norman Soetbeer + - Piet Steinhart + - Darryl Hein (xmmedia) + - Igor Timoshenko (igor.timoshenko) + - Anton (bonio) + - Max Voloshin (maxvoloshin) + - fh-github@fholzhauer.de + - Vladimir Mantulo (mantulo) + - Marek Šimeček (mssimi) + - Shaun Simmons + - Bart Ruysseveldt + - Alexandre Tranchant (alexandre_t) + - Michael Orlitzky + - Jared Farrish + - MatTheCat + - Abdelhakim ABOULHAJ + - Sander Hagen + - Benjamin Schultz (bschultz) + - NIRAV MUKUNDBHAI PATEL (niravpatel919) + - Pierre Tondereau + - Emre YILMAZ + - Pavel Prischepa + - Pierre Geyer (ptheg) + - max + - stloyd + - wesign (inscrutable01) + - andersmateusz + - Laurent Moreau + - Ciaran McNulty (ciaranmcnulty) + - Dominik Piekarski (dompie) + - Abderrahman DAIF (death_maker) + - Halil Hakan Karabay (hhkrby) + - Guillaume Royer + - Phobetor + - chesteroni (chesteroni) + - Ariel J. Birnbaum + - ProgMiner + - Kevin Weber + - Adrian Philipp + - boulei_n + - Juan Luis (juanlugb) + - Chris Maiden (matason) + - Richard Hodgson + - Yannick Warnier (ywarnier) + - Tadas Gliaubicas (tadcka) + - Clément Bertillon (skigun) + - Jelizaveta Lemeševa (broken_core) + - Jacek Kobus (jackks) + - Ismail Faizi (kanafghan) + - César Suárez (csuarez) + - Raito Akehanareru (raito) + - sabruss + - Joachim Krempel (jkrempel) + - George Bateman + - riadh26 + - Tim Lieberman + - Anamarija Papić (anamarijapapic) + - BilgeXA + - jfcixmedia + - Nicolas Roudaire + - Blackfelix + - Benedict Massolle (bemas) + - boite + - Benoit Mallo + - Franz Liedke (franzliedke) + - Ivan Nemets + - Clemens Krack + - Rodrigo Díez Villamuera (rodrigodiez) + - Tom Kaminski + - Andreas Streichardt + - Alexis MARQUIS + - Max Beutel + - Andre Eckardt (korve) + - Wouter de Wild + - Abdouarrahmane FOUAD (fabdouarrahmane) + - Siragusa (asiragusa) + - Lenar Lõhmus + - Balázs Benyó (duplabe) + - Edwin + - Pierre Schmitz + - timesince + - David Grüner (vworldat) - Kai Eichinger - - Jeroen Bouwmans - - Wim Molenberghs (wimm) - - Wang Jingyu - - Mihail Krasilnikov (krasilnikovm) - - AnrDaemon - - HADJEDJ Vincent (hadjedjvincent) - - Karolis - - Jiri Korenek - - gedrox - - Daniel Kolvik (dkvk) - - alexpods - - Jeremy Benoist - - patrickmaynard - - gechetspr - - Kris Kelly - - Kévin - - Mark van den Berg - - SOEDJEDE Felix (fsoedjede) - - Simon Mönch - - Dan Brown - - Victor - - MARYNICH Mikhail (mmarynich-ext) - - Paul Mitchum (paul-m) - - Antoine Bellion (abellion) - - Arnau González - - Ramon Ornelas (ramonornela) - - helmi - - gr1ev0us - - Mateusz Lerczak - - Mateusz Żyła (plotkabytes) - - Ismail Özgün Turan (dadeather) - - Uladzimir Tsykun - - Adrien Gallou (agallou) - - Nerijus Arlauskas (nercury) - - Clément - - Jonas Claes - - Michael Hüneburg - - Philipp Strube - - Artiom - - Skorney - - Lane Shukhov - - Matt Fields - - Lajos Veres (vlajos) - - toxxxa - - Nsbx - - Amine Matmati - - Ari Pringle (apringle) - - chillbram - - Orestis - - Flohw - - Tim Porter - - Jérémy CROMBEZ (jeremy) - - Paulius Jarmalavičius (pjarmalavicius) - - Oscar Esteve (oesteve) - - Romain - - Dave Long - - bill moll - - Marco Pfeiffer - - Laurent Negre (raulnet) - - Brian Corrigan - - Zayan Goripov - - André Matthies - - ttomor - - Gavin (gavin-markup) - - Evgeny Ruban - - Florian Bogey - - Soha Jin - - Alexander Zogheb - - Dan Ordille (dordille) - - Juan M Martínez - - Tammy D - - Kevin Frantz - - bokonet - - Sébastien Armand (khepin) - - Dan Barrett (yesdevnull) - - Olivier Acmos (olivier_acmos) - - Greg Somers - - Johnny Peck - - Stacy Horton - - Sébastien Lourseau - - Andrius Ulinskas (andriusulins) - - mohamed - - Fanny Gautier - - wbob - - Ivan Ternovtsiy - - nencho nencho (nencho) - - Tobias Rautenkranz - - Gintautas - - Lamari Alaa - - Shamsi Babakhanov - - M.Wiesner - - Jérémy CROMBEZ - - ayacoo - - Nassim LOUNADI - - Andy Truong + - Philip Frank + - Malte Wunsch (maltewunsch) + - Raphaël Davaillaud + - Nathan Sepulveda + - Vincent + - Dominic Luidold + - Roman Orlov + - Seyedramin Banihashemi (ramin) + - Erfan Bahramali + - Alexis + - Stefano Cappellini (stefano_cappellini) + - Hallison Boaventura (hallisonboaventura) + - Samael tomas - Jon Cave - - Joe Mizzi (themizzi) - - Dennis Bijsterveld (bijsterdee) - - Daniel Karp - - Dilantha Nanayakkara - - wazz42 - - Michael Phillips - - RickieL - - Valentin GARET (vgaret) - - Grzegorz Balcewicz (gbalcewicz) - - Kai Eichinger (kai_eichinger) - - Thomas Talbot - - sblaut - - Vincent Terraillon (lou-terrailloune) - - timo002 - - Simon Van Accoleyen (simonvanacco) - - MarkPedron - - Yuri Tkachenko (tamtamchik) - - Sam Hudson - - New To Vaux - - Robin - - Benjamin Clay (ternel) - - Fernando Aguirre Larios (ingaguirrel) - - guiditoito - - Jorge Luis Betancourt (jorgelbg) - - Sylvain - - Freerich Bäthge (freerich) - - Matthew Loberg (mloberg) - - Ryszard Piotrowski (richardpi) - - ipatiev - - Kevin Lot - - Josef Vitu - - Ludwig Ruderstaller (rufinus) - - Bill Surgenor - - Johan de Jager (dejagersh) - - Nuno Ferreira (nunojsferreira) - - Niklas - - Jan - - Epskampie - - Spomky - - norbert-n - - Mohameth - - Massimo Giagnoni (mgiagnoni) - - Carlos Reig (statu) - - Kik Minev (kikminev) - - Axel Barlet - - Andrew Martynjuk (crayd) - - juliendidier - - Karsten Gohm (kasn) - - Arnaud B (krevindiou) - - Ben Thomas - - Jacek (opcode) - - Tristan Darricau - - CvekCoding - - technetium - - Marco Barberis - - Joshua Dickerson (groundup) - - Éric - - OrangeVinz (orangevinz) - - xavierkaitha94 - - Jason Johnstone - - Konstantin Tjuterev (kostiklv) - - Al-Saleh KEITA - - Jean-Marie Lamodière (jmlamo) - - Patrick McAndrew (patrick) - - Frédéric Planté - - Ahmed Abdou (ahmedaraby) - - Rémy Issard - - Lorenzo Milesi (maxxer) - - Eugene Wolfson - - Mickaël - - danjamin - - Greg Pluta - - Nurlan Alekberov - - Idziak - - Matthieu Braure (taliesin) - - Jérôme (ajie62) - - Konstantin (phrlog) - - Raphaël Geffroy - - Markus Thielen (mathielen) - - Vivien Tedesco (vivient) - - Andrey Tkachenko - - Roman (grn-it) - - Heaven31415 - - Florian-B - - Guillermo Quinteros (guquinteros) - - Maxime Morlet (maxicom) - - David Rolston (gizmola) - - Krzysztof Nizioł - - Théo FIDRY - - Keefe Kwan (kkwan) - - Reio Remma - - Mathieu Ducrot (mathieu-ducrot) - - Vadym (rvadym) - - Christophe Boucaut - - Nadim AL ABDOU - - Mateusz Anders - - Daniel (voodooprograms) - - Janne Vuori (jimzalabim) - - Paulo Rodrigues Pinto (regularjack) - - Marco - - Yoan Arnaudov (nacholibre) - - Julien Bonnier (jbonnier) - - concilioinvest - - ghertko - - Benjamin Laugueux - - Christian Heinrich - - oyerli - - Sylvain Combes (sylvaincombes) - - VosKoen - - Norio Suzuki (suzuki) - - Artur Butov (vuras) - - Francois CONTE - - Stefan Grootscholten (stefan_grootscholten) - - Stéphane Paul BENTZ (spbentz) - - Nazar Mammedov - - Thierry Goettelmann - - Vladimir Schmidt (morgen) - - Pouyan Azari - - Joe Hans Robles Martínez (joebuntu) - - Ahmed Raafat (luffy14) - - revollat - - Stephan - - Lander Vanderstraeten - - Hugo Locurcio - - Quentin Stoeckel (chteuchteu) - - Christoph Schmidt - - Tyler Sommer (veonik) - - Evgeniy Gavrilov - - David Lumaye - - Jérôme Poskin (moinax) - - lacatoire - - niebaron - - mehlichmeyer - - Turdaliev Nursultan (nurolopher) - - authentictech - - jms85 - - Egidijus Girčys (egircys) - - Alejandro García Rodríguez (alejgarciarodriguez) - - Joachim Martin (michaoj) - - Michel D'HOOGE (mdhooge) - - Pavel Máca - - Julien Chaumond (julien_c) - - jmsche - - Clément Barbaza - - David Ward (roverwolf) - - Anton - - Ivan Nemets - - Erdal G - - oussama khachiai (geekdos) - - Abdellatif Derbel (abdellatif) - - Dorozhko Anton - - Davi Tavares Alexandre (davialexandre) - - Danielle Suurlant (dsuurlant) - - Janusz Slota (janusz.slota) - - Szymon Skowroński (skowi) - - zulkris - - Dzamir - - Boris Shevchenko - - z38 - - Florent DESPIERRES (fdespierres) - - BooleanType - - Theo Tzaferis - - Matthieu Danet (matthieu-tmk) - - BorodinDemid - - Simon Epskamp - - Ulrich Völkel (udev) - - Moroine Bentefrit - - Mathias STRASSER - - Karin van den Berg - - kohkimakimoto - - George Pogosyan (gp) - - Arc Tod - - John Spaetzel - - Rémi Andrieux (pimolo) - - Cosmic Mac - - Jordan Aubert (jordanaubert) - - Kostas Loupasakis (loupax) - - Arnaud Salvucci (arnucci) - - vihuarar - - Sherin Bloemendaal - - Rick Pastoor - - RisingSunLight - - Tomasz Tybulewicz (tybulewicz) - - Ahmed El Moden - - Jamal Youssefi - - Benjamin D. (benito103e) - - Julius (julius1) - - Michael Grinko - - Robert Parker (yamiko) - - Arthur Hazebroucq - - Paweł Małolepszy (pmalolepszy) - - Danny van Wijk (dannyvw) - - bram vogelaar (attachmentgenie) - - Thomas Le Duc (viper) - - Ruben Petrosjan - - Andrei - - Thomas Kappel - - Steve Nebes - - Estelle Gaits (estellegaits) - - Gilles Fabio - - Xavier Coureau - - George Zankevich - - Vince (zhbzhb) - - Jake Bell - - Raul C - - javaDeveloperKid - - Joe Thielen - - Alex Oroshchuk - - Paul Coudeville - - Steve Wasiura - - Andreas Schönefeldt - - Bruno Ferme Gasparin (bfgasparin) - - pathmissing - - Matthew Setter (settermjd) - - Gustavo Henrique Mascarenhas Machado - - Omar Brahimi (omarbrahimi) - - timglabisch - - MWJeff - - Luc - - Ala Eddine khefifi - - pecapel - - marcusesa - - Simone Gentili (sensorario) - - makmaoui - - Ed Poulain - - Andy Dawson - - Gyula Szabó (szabogyula) - - Giulio Lastra - - Josenilton Junior (zavarock) - - Yakov Lipkovich - - Florian Semm (floriansemm) - - Nassim - - Marvin Hinz - - Rico Neitzel - - Hendrik Pilz (hendrikpilz) - - Krzysztof Ilnicki (poh) - - Jan De Coster - - Nikola Kuzmanović (nkuzman) - - Iv Po - - Dalius Kalvaitis (daliuskal) - - Piotr Strugacz - - Eirik Alfstad Johansen (nmeirik) - - Poulette Christophe (totof6942) - - OИUЯd da silva - - Volodymyr Stelmakh - - Ronan Pozzi (treenity) - - Alex Coventry - - Edgar Brunet - - Bram van Leur (bvleur) - - Jeff Zohrab - - Max Schindler (chucky2305) - - Thomas Berends - - Wojciech Kania - - guangle - - Denis Dudarev - - Matheo D - - Léo PLANUS - - Issam KHADIRI (ikhadiri) - - ahmetkun - - Aaron Baker - - Benj - - Mickaël Bourgier (chapa) - - Vincent Chareunphol (devoji) - - Sergey Podgornyy (sergey_podgornyy) - - Sylvester Saracevas (saracevas) - - Ben Glassman (bglassman) - - Amine Matmati (aminemat) - - hidde.wieringa - - Dhanushka Samarakoon - - Ivan Zugec (zugec) - - m_hikage - - Giuseppe Attardi - - AlexKa - - Andrey (quiss) - - Peter WONG - - Marijn Huizendveld - - Alfonso Machado Benito (almacbe) - - Zsolt Javorszky (zsjavorszky) - - Albert Moreno - - Daniel Degasperi (ddegasperi) - - Sascha Egerer - - Thierry Thuon - - Varun Agrawal (varunagw) - - Ali Arfeen - - Peter Hauke - - kevin - - Patrick Bußmann - - Michaël Mordefroy - - Koen van Wijnen (infotracer) - - Yannick (yannickdurden) - - Pascal de Vink (pascaldevink) - - Robert Saylor (rsaylor) - - Lucas Mlsna - - Martin Ninov (martixy) - - Maxime Cornet (elysion) - - pbijl (pbijl) - - Alexey Samara - - Catalin Minovici (catalin_minovici) - - Carlos Zuniga (charlieman) - - gertdepagter - - dcramble - - sebpacz - - Armen Mkrtchyan (iamtankist) - - Jean-Baptiste Delhommeau (jbdelhommeau) - - Gabriel Pillet (tentacode) - - Julien BENOIT - - Dukagjin Surdulli - - Robert Koller (robob4him) - - lajosthiel - - Alaa AttyaMohamed (alaaattya) - - Vladimir Jimenez - - Jan Schütze (dracoblue) - - Adrien - - (H)eDoCode - - Leanna Pelham (leannapelham) - - Hubert Moutot (youbs) - - Syedi Hasan - - Mark Badolato (mbadolato) - - Jérémy LEHERPEUR (amenophis) - - Igor - - Lauri - - Alistair (phiali) - - Robert Brian Gottier - - Abdellah EL GHAILANI (aelghailani) - - Pedro Gimenez - - LEFLOCH Jean-François (katsenkatorz) - - Jorick Pepin (jorick) - - Oleksandr Savchenko (asavchenko) - - Clorr - - Filip Grzonkowski (grzonu) - - Charly - - Geert Clerx - - Emir Beganović (emirb) - - Joseph Bielawski - - ismail mezrani (imezrani) - - Anani Ananiev - - Juan Manuel Fernandez (juanmf) - - Kai (kai_dederichs) - - Danilo Sanchi (danilo.sanchi) - - Evan Owens - - Ali Sunjaya - - Attila Egyed (tsm) - - Chris McMacken (chrism) - - Tomáš Tibenský - - DanielEScherzer - - Epskampie - - Jade Xau - - Mario Young - - David Frerich - - Peter Majmesku - - Aleksandr Frolov (thephilosoft) - - Toni Conca (tonic) - - Julien Janvier - - Alexander Vorobiev (avorobiev) - - Rafael Gil (cybervoid) - - jerzy-dudzic - - Archie Vasyatkin - - figaw - - Daniele Orler - - Ruud Kamphuis - - j00seph - - Mike Bissett - - Exalyon - - unknown - - ThamiSadouk - - Vincent Le Biannic - - Kostya - - Krzysztof Daniel (krzysdan) - - scottwarren + - Stefan Graupner (efrane) + - Evgeniy Koval + - Alexandru Patranescu + - Carl Julian Sauter + - Victor Truhanovich (victor_truhanovich) + - mikocevar + - Tamás Szigeti + - Alex Teterin (errogaht) + - Ken Stanley + - Harald Tollefsen + - tarlepp + - Mathieu Ledru (matyo91) + - Mauricio Lopez (diaspar) + - fabios + - Tom Newby (tomnewbyau) + - ryunosuke + - Brian Freytag + - Jody Mickey (jwmickey) + - pthompson + - Benjamin Dos Santos + - Manuele Menozzi + - Florian Cellier + - Thomas Bibaut + - mark burdett + - Chansig + - Johannes Goslar + - Pierre-Henry Soria 🌴 (pierrehenry) + - Saem Ghani + - Jan Vernarsky + - Vincent LEFORT (vlefort) + - twifty + - Zachary Tong (polyfractal) + - Guillem Fondin (guillemfondin) + - chispita + - Rafał Muszyński (rafmus90) + - Stefan Hüsges (tronsha) + - ZiYao54 + - Stelian Mocanita (stelian) + - Tomasz Szymczyk (karion) + - Oliver Klee + - botbotbot + - youssef saoubou + - Storkeus + - Ibrahim Bougaoua + - Frédéric G. Marand (fgm) + - Juan Mrad + - joris de wit (jdewit) + - Raphael Hardt + - Kurt Thiemann + - pdragun + - Michael Nelson + - J Bruni + - Ferran Vidal + - TheMhv + - Marc J. Schmidt (marcjs) + - Mark de Haan (markdehaan) + - takashiraki + - Robin Duval (robin-duval) + - Elías Fernández + - Ashura + - Matt Brunt + - Danil + - Nikos Charalampidis + - Peter Jaap Blaakmeer + - Alexander Menk + - Ionut Cioflan + - Moza Bogdan (bogdan_moza) + - James Cowgill + - Dmitry Danilson + - Andreas + - Rafael Villa Verde + - Rik van der Heijden + - Pierre Dudoret + - Geoffrey Monte (numerogeek) + - Sebastian Drewer-Gutland (sdg) + - Sam Williams + - Patrick Carlo-Hickman + - Andrey Ryaguzov + - Alberto Pirovano (geezmo) + - Ala Eddine Khefifi (nayzo) + - Florian Heller + - Nardberjean + - Arman + - neFAST + - orlovv + - sal-car + - Erwin Dirks + - Andrew Coulton + - Norman Soetbeer + - Elías (eliasfernandez) + - Thomas Dubuffet (thomasdubuffet) + - Ben Oman + - Vincent AMSTOUTZ (vincent_amstz) + - Jeroen De Dauw (jeroendedauw) + - Matthew Covey + - Tugba Celebioglu + - es + - Jeffrey Cafferata (jcidnl) + - Willem Mouwen + - Marcos Quesada (marcos_quesada) + - Sébastien Decrême (sebdec) + - Pedro Silva + - Ikko Ashimine + - Alexandre GESLIN + - cthulhu + - Constantine Shtompel + - Artfaith + - Taras Girnyk + - Maxime AILLOUD (mailloud) + - Raphael Davaillaud + - Rénald Casagraude (rcasagraude) + - Yoann MOROCUTTI + - Cas + - BrokenSourceCode + - Samy D (dinduks) + - Denis Yuzhanin + - Daniel Bartoníček + - Jake Bishop (yakobeyak) + - Arash Tabrizian (ghost098) + - Mikkel Paulson + - Richard Quadling + - Ahmed HANNACHI (tiecoders) + - Jan Pintr + - Robert Gurau + - James Michael DuPont + - Chihiro Adachi (chihiro-adachi) + - Gemorroj (gemorroj) + - Boris Betzholz + - Stephanie Trumtel (einahp) + - Bradley Zeggelaar + - Bernhard Rusch + - David Négrier (moufmouf) + - Martin Pärtel + - Ramon Kleiss (akathos) + - Marc Duboc (icemad) + - Linas Ramanauskas + - Andre Johnson + - Abdul.Mohsen B. A. A + - Ben Gamra Housseine (hbgamra) + - Christian Wahler (christian) + - Jelte Steijaert (jelte) + - Nicolas Fabre (nfabre) + - Malte Schlüter + - Sergii Dolgushev (serhey) + - Hossein Hosni + - gitlost + - Andrei Igna + - Eric Caron + - Ivo Valchev + - Alan Bondarchuk + - psampaz (psampaz) + - Javier Núñez Berrocoso (javiernuber) + - mousezheng + - Fraller Balázs (fracsi) + - Anthony Moutte + - Dalibor Karlović + - heccjj + - Laurent Bachelier (laurentb) + - Robert Worgul + - John Espiritu (johnillo) + - Marco Pfeiffer + - Alexandru Năstase + - j4nr6n (j4nr6n) + - dened + - Troy McCabe + - Claas Augner + - Mark Spink + - Frederik Schwan + - Ashura + - Frank Schulze (xit) + - fabi + - jprivet-dev + - Dcp (decap94) + - shdev + - Gennadi Janzen + - Paweł Tomulik + - kshida + - marbul + - Andrea Civita + - Alberto Aldegheri + - Roger Webb + - Ettore Del Negro + - Greg Szczotka (greg606) + - Steffen Keuper + - Tatsuya Tsuruoka + - Benjamin Long + - Konrad Mohrfeldt + - Dalibor Karlović + - Zacharias Luiten + - Guillaume Lajarige (molkobain) + - goabonga + - Romain Geissler + - Thiago Melo + - Jovan Perovic (jperovic) + - Alexandre Beaujour + - neodevcode + - n-aleha + - Verlhac Gaëtan (viviengaetan) + - Gerd Christian Kunze (derdu) + - Pieter + - Raphael de Almeida (raphaeldealmeida) + - Thierry Marianne + - Fabian Steiner (fabstei) + - Marek Binkowski + - Christopher Georg (sky-chris) + - jonmldr + - Keith Maika + - kurozumi (kurozumi) + - Normunds + - Yiorgos Kalligeros + - Dmitry Simushev + - Htun Htun Htet (ryanhhh91) + - kaiwa + - Gunther Konig + - Anthony Tenneriello + - Ash014 + - Marie Minasyan (marie.minassyan) + - Jorge Martin (jorgemartind) + - Grégoire Rabasse + - Aleksey Prilipko + - nyro (nyro) + - drublic + - Marcus + - Muharrem Demirci (mdemirci) + - insekticid + - Simon Ackermann + - iamvar + - Barthold Bos + - Lukas Kaltenbach + - Dylan + - Adam Kiss + - Maria Grazia Patteri + - AbdElKader Bouadjadja + - Alex Vo (votanlean) + - Muriel (metalmumu) + - Nico Hiort af Ornäs + - Ronny López (ronnylt) + - Sam Malone + - wivaku + - Pavel Golovin (pgolovin) + - Saif Eddin G + - dakur + - Makdessi Alex + - misterx + - Nicolas Attard (nicolasattard) + - Evgeny (disparity) + - Jorge Maiden (jorgemaiden) + - Martijn Evers + - Pedro Magalhães (pmmaga) + - László GÖRÖG + - soyuka + - Matt Wells + - Tammy D + - Nicolas Macherey + - Wissame MEKHILEF + - Janusz Mocek + - omerida + - Sylvain METAYER + - Grégory Pelletier (ip512) + - Christian Kolb + - michal + - Cedric Kastner (nurtext) + - mohammadreza honarkhah + - Gabriel Solomon (gabrielsolomon) + - Marcin Nowak + - Nathanaël Martel (nathanaelmartel) + - Alexandre Melard + - goohib + - Adam Prickett + - Luke Towers + - Lin Lu + - craigmarvelley + - Krzysztof Pyrkosz + - Sebastian Ionescu + - Fabio Panaccione + - Stephan Wentz (temp) + - Yuriy Potemkin + - Sagrario Meneses + - Martin Komischke + - Yewhen Khoptynskyi (khoptynskyi) + - Fred Cox + - Marc Lemay (flug) + - Takashi Kanemoto (ttskch) + - Olivier Scherler (oscherler) + - Felipy Amorim (felipyamorim) + - Helmut Hummel (helhum) + - Abderrahim (phydev) + - Tom Hart + - Simon Paarlberg (blamh) + - Sobhan Sharifi (50bhan) + - Sébastien Lévêque (legenyes) + - Karl Shea + - Faton (notaf) + - LHommet Nicolas (nicolaslh) + - david perez (davidpv) + - František Bereň + - Linnaea Von Lavia + - Benoit Garret + - aim8604 + - Matěj Humpál + - Joas Schilling + - Chris de Kok + - Maxime PINEAU + - Adriaan Zonnenberg + - Nicolas Jourdan (nicolasjc) + - Aurimas Rimkus (patrikas) + - Zlatoslav Desyatnikov + - Bruno Baguette + - Peter Bex + - JuntaTom (juntatom) + - Sami Mussbach + - Adam Monsen (meonkeys) + - Wim Molenberghs (wimm) + - Dmitrii Fedorenko (dmifedorenko) + - Théo DELCEY + - mmokhi + - Sébastien Armand (khepin) + - Stuart Fyfe + - j.schmitt + - Mihai Stancu + - Jan Vernarsky + - Chris + - Karim Miladi + - Ron Gähler (t-ronx) + - Tomas Kmieliauskas + - Aarón Nieves Fernández + - simbera + - Pontus Mårdnäs + - JK Groupe + - Eddie Abou-Jaoude (eddiejaoude) + - Andrew Zhilin (zhil) + - Alexandru Bucur + - ConneXNL + - Per Modin + - David Wolter (davewww) + - SOEDJEDE Felix (fsoedjede) + - Sezil + - Christian Rishøj + - Benhssaein Youssef + - Steve Preston + - CarolienBEER + - Aleksei Lebedev + - Harold Iedema + - Alexey Berezuev + - Martin Auswöger + - Artem Lopata + - Jan Eichhorn (exeu) + - Maciej Paprocki (maciekpaprocki) + - Yannick + - Victor Prudhomme + - Jelle Kapitein + - Marvin Petker + - Romain Pierre + - Arend Hummeling + - Emirald Mateli + - Steve Hyde + - Bailey Parker + - Adam Wójs (awojs) + - Andy Raines + - Martins Eglitis + - Florent Cailhol + - Charles-Henri Bruyand + - 🦅KoNekoD + - Ahmed Abdou + - Benjamin Bender + - Roromix + - Pavol Tuka + - koyolgecen + - Asrorbek Sultanov + - ondrowan + - dantleech + - Christian Morgan + - Miloš Milutinović + - Eric Grimois + - Mateusz Lerczak + - Richard Trebichavský + - Vladimir Sazhin + - bokonet + - Denis Kop + - mlpo (mlpo) + - Alain Flaus (halundra) + - Lauris Binde (laurisb) + - Jeroen van den Nieuwenhuisen + - Julien Pauli + - Alexander McCullagh (mccullagh) + - Nilmar Sanchez Muguercia + - Peter Schultz + - Safonov Nikita (ns3777k) + - Bhujagendra Ishaya + - Ladislav Tánczos + - vdauchy + - Andrey Helldar + - Aharon Perkel + - Bastien Picharles + - Ksaveras Šakys (xawiers) + - Denis Klementjev (dklementjev) + - Tijs Verkoyen + - Krzysztof Menżyk (krymen) + - Silas Joisten (silasjoisten) + - Kevin Mian Kraiker + - Tournoud (damientournoud) + - Jozef Môstka (mostkaj) + - Charly Terrier (charlypoppins) + - Arkadiusz Rzadkowolski (flies) + - Dale.Nash + - Florian Guimier + - Oleg Mifle + - George Dietrich + - Klaas Cuvelier (kcuvelier) + - Thomas BERTRAND (sevrahk) + - Adamo Crespi (aerendir) + - Rich Sage + - Emmanuel Dreyfus + - gr1ev0us + - Bert Hekman + - Matthew Foster (mfoster) + - Marcos Labad + - Houssem + - Farhad Hedayatifard + - Tomas Liubinas + - Penny Leach + - Ivo + - Fleuv + - Taylan Kasap + - Marek Víger (freezy) + - Roman Tymoshyk (tymoshyk) + - Brieuc Thomas + - Alexander Janssen (tnajanssen) + - Greg Korba + - Toro Hill + - Benjamin Paap (benjaminpaap) + - Jonas Hünig + - Kevin Frantz + - eminjk + - Robert Queck + - Bram Van der Sype (brammm) + - Kai Dederichs + - AUDUL + - damaya + - cybernet (cybernet2u) + - Ondřej Mirtes (mirtes) + - Kacper Gunia (cakper) + - bahram + - Aydin Hassan + - Bjorn Twachtmann (dotbjorn) + - Grégoire Hébert (gregoirehebert) + - Christian Neff (secondtruth) + - Anna Filina (afilina) + - avi123 + - Franz Wilding (killerpoke) + - Oksana Kozlova (oksanakozlova) + - Radoslaw Kowalewski + - Matthew (mattvick) + - Peter Ward + - ShiraNai7 + - RichardGuilland + - Viacheslav Sychov + - Jenne van der Meer + - Roeland Jago Douma + - LubenZA + - Jeroen Bouwmans + - Adrien Gallou (agallou) + - Dave Long + - bill moll + - Tristan Pouliquen + - Albert Bakker (babbert) + - Foxprodev + - Christoph Vincent Schaefer (cvschaefer) + - Bert Ramakers + - Max Grigorian (maxakawizard) + - sualko + - Nicolas Martin (cocorambo) + - helmi + - Ener-Getick + - jwaguet + - Marin Nicolae + - Nick Chiu + - Kevin EMO + - AlbinoDrought + - Emmanuelpcg + - Bárbara Luz + - Alexandre Segura + - Dan Ordille (dordille) + - parinz1234 + - root + - Dennis Jaschinski (d.jaschinski) + - Markkus Millend + - Christian Grasso (chris54721) + - Phil Davis + - Serhii Polishchuk (spolischook) + - Daniel González Zaballos (dem3trio) + - Michael van Tricht + - Andrew Clark (tqt_andrew_clark) + - Mathieu Dewet (mdewet) + - WaiSkats + - Pavel Barton + - Yevgen Kovalienia + - Erwan Nader (ernadoo) + - Guido Donnari + - Stas Soroka (stasyan) + - Mathias Geat + - Myke79 + - Matthew J Mucklo + - Michael Gwynne + - Dmitriy Derepko + - V1nicius00 + - Jochen Bayer (jocl) + - Florent Olivaud + - robin.de.croock + - Michał Strzelecki + - alex + - rtek + - Marco Jantke + - Robert-Jan de Dreu + - Peter Culka + - Neil Katin + - znerol + - Baptiste Leduc (bleduc) + - Alexey Popkov + - Bruno MATEU + - inspiran + - Gary Houbre (thegarious) + - Ismail Asci (ismailasci) + - Thomas Rothe + - Nikola Svitlica (thecelavi) + - Dan Harper + - Vladislav Nikolayev (luxemate) + - Jontsa + - Dmytro Dzubenko + - Rafał Treffler + - Andrea Sprega (asprega) + - Bruno Nogueira Nascimento Wowk + - d-ph + - Johannes + - dlorek + - Frédéric Bouchery (fbouchery) + - ReScO + - Yurii K + - Alexey Buyanow (alexbuyanow) + - Mahmoud Mostafa (mahmoud) + - Francois Martin + - Adiel Cristo (arcristo) + - Michael Tibben + - Nico Müller (nicomllr) + - Florian Morello + - Joseph Deray + - Ahmad Mayahi (ahmadmayahi) + - Xavier HAUSHERR + - Jay Severson + - Daan van Renterghem + - HADJEDJ Vincent (hadjedjvincent) + - Oscar Esteve (oesteve) + - Şəhriyar İmanov (shehriyari) + - Rémi Blaise + - florian-michael-mast + - klemens + - creiner + - Toby Griffiths (tog) + - Peter Smeets (darkspartan) + - Aurelijus Rožėnas + - tatankat + - Antanas Arvasevicius + - Juga Paazmaya + - Guillaume BRETOU (guiguiboy) + - Viktor Bajraktar (njutn95) + - Florian Caron (shalalalala) + - Anton Kroshilin + - Arend-Jan Tetteroo + - Amaury Leroux de Lens (amo__) + - Artem (digi) + - excelwebzone + - Mikko Pesari + - Valentin + - Nouhail AL FIDI (alfidi) + - Wahyu Kristianto (kristories) + - Eric Hertwig + - Cédric Girard + - Bastien Clément (bastienclement) + - Nicolas Appriou + - Maxim Lovchikov + - Juan M Martínez + - wusuopu + - Kai Eichinger + - Sergei Shitikov + - Wim Hendrikx + - Dmitrii Baranov + - Damon Jones (damon__jones) + - Bikal Basnet + - Yura Uvarov (zim32) + - Timothée BARRAY + - Fabien D. (fabd) + - VAN DER PUTTE Guillaume (guillaume_vdp) + - Pierre LEJEUNE (darkanakin41) + - Anatol Belski + - Jordan de Laune (jdelaune) + - “teerasak” + - Markus Klein + - Ryan Rogers + - Michael Genereux + - Andriy Prokopenko (sleepyboy) + - Arrakis (arrakis) + - GurvanVgx + - Matej Žilák (teo_sk) + - Ulrik Nielsen (mrbase) + - Caligone + - Rosio (ben-rosio) + - Ahmed Abdulrahman + - vladyslavstartsev + - dsech + - Kenjy Thiébault (kthiebault) + - Vedran Mihočinec (v-m-i) + - sauliusnord + - Thomas Hanke + - Marc Jauvin + - hjkl + - Vincent Chalnot + - matze + - Thomas Decaux + - Jānis Lukss + - PLAZANET Pierre (pedrotroller) + - Shude + - David Ronchaud + - Martynas Narbutas + - Haritz Iturbe (hizai) + - alefranz + - Ian Phillips + - omniError + - Bartłomiej Zając + - Yohann Tilotti + - Benoit Leveque + - linh + - Dan Brown + - Boris Medvedev + - Adrien Moiruad + - Andriy + - Guillaume Smolders (guillaumesmo) + - Rene de Lima Barbosa (renedelima) + - jack.shpartko + - HellFirePvP + - Benjamin Rosenberger + - Vladimir Khramtsov (chrome) + - Martin Eckhardt + - g123456789l + - Victor Macko (victor_m) + - 蝦米 + - Alex Demchenko + - Patrick Berenschot + - Ema Panz + - Antonio Peric-Mazar (antonioperic) + - Martin Schophaus (m_schophaus_adcada) + - Tomasz (timitao) + - William Pinaud (docfx) + - ergiegonzaga + - Steve Marvell + - Julien Sanchez (sumbobyboys) + - Javier + - alexpods + - Kris Kelly + - Joan Cruz + - Jens Schulze + - inwebo veritas (inwebo) + - Ondřej Führer + - enomotodev + - tpetry + - djama + - Bart Wach + - Evgeny Z (meze) + - Christian Schiffler + - Jeremy Benoist + - Pawel Smolinski + - AnrDaemon + - Paul Mitchum (paul-m) + - Antoine Bellion (abellion) + - Michael Hüneburg + - Mihail Krasilnikov (krasilnikovm) + - Karolis + - Jiri Korenek + - gedrox + - Daniel Kolvik (dkvk) + - patrickmaynard + - gechetspr + - Kévin + - Mark van den Berg + - Simon Mönch + - Victor + - MARYNICH Mikhail (mmarynich-ext) + - Arnau González + - Ramon Ornelas (ramonornela) + - Mateusz Żyła (plotkabytes) + - Ismail Özgün Turan (dadeather) + - Uladzimir Tsykun + - Nerijus Arlauskas (nercury) + - Clément + - Jonas Claes + - Philipp Strube + - Artiom + - Skorney + - Lane Shukhov + - Matt Fields + - Lajos Veres (vlajos) + - toxxxa + - Nsbx + - Amine Matmati + - Ari Pringle (apringle) + - chillbram + - Orestis + - Flohw + - Tim Porter + - Jérémy CROMBEZ (jeremy) + - Paulius Jarmalavičius (pjarmalavicius) + - Romain + - Marco Pfeiffer + - Laurent Negre (raulnet) + - Brian Corrigan + - Zayan Goripov + - André Matthies + - ttomor + - Gavin (gavin-markup) + - Evgeny Ruban + - Florian Bogey + - Soha Jin + - Wang Jingyu + - optior + - Carlos Reig (statu) + - Veltar - Baptiste Langlade - - Norman Soetbeer (battlerattle) - - Mark Brennand (activeingredient) - - Tobias Berchtold - - Félix Fouillet - - Cédric Spalvieri (skwi) - - Vladimir - - Florian Moser - - Laurent Moreau (laulibrius) - - Michelle Sanver (michellesanver) - - Pim van Gurp - - Bram de Smidt - - Lyrkan - - Jürgen - - Alexander O'Neill - - Ana Cicconi - - pavdovlatov - - Andrey Shark (astery) - - Nils Silbernagel - - Shane Archer (sarcher) - - dellamowica - - Daniel Santana - - Alan Farquharson - - David - - ymc-sise - - DKravtsov - - Bart Heyrman - - Nicola Pietroluongo - - Robin C - - Josh Taylor (josher) - - Yoan Bernabeu - - Javier Espinoza - - Casey Heagerty - - Fouad - - Alexpts (alexpts) - - kraksoft - - Aaron Edmonds (aedmonds) - - Foksler (foksler) - - Vincent Jousse - - Edwin - - Oussama GHAIEB (oussama_tn) - - Nicolas Potier (npotier) - - Frédéric Lesueurs - - Matthieu Renard - - Jonas De Keukelaere - - Valerio Colella - - Slobodan Stanic - - Rafael Mello (merorafael) + - martin05 + - Robin Willig (dragonito) + - scottwarren + - Krzysztof Daniel (krzysdan) + - Daniel Kesselberg (kesselb) - Thomas Choquet (tchoquet) - - Darien - - moon-watcher - - Cliff Odijk (cmodijk) - - Nietono - - Erik Trapman - - LavaSlider - - Phil Moorhouse (lazymanc) - - David - - Pierre - - JHGitty - - Enache Codrut - - ThomasGallet - - sirprize - - David D. (comxd) - - Francisco Corrales Morales - - Bruno Vitorino - - Mimi - - Leo - - Cadot.eu & Co. - - Peyman Mohamadpour - - Alexandre GESLIN (rednaxe) - - linuxprocess - - Ali Yousefi (aliyousefi) - - Cassian Assael (crozet) + - Maxime Morlet (maxicom) + - hamzabas + - Florent Destremau + - Yopai + - Viacheslav Demianov (sdem) + - valepu + - Thibault Pelloquin (thibault_pelloquin) + - Aaron Baker + - Philipp Christen + - Sylvain Blondeau + - Ed Poulain - dawidpierzchalski - - Tim Stamp - - Max R - - Andrei Chugunov - - Francisco Calderón (fcalderon) - - Yaroslav Yaremenko - - Brent Shaffer (bshaffer) - - kenjis (kenjis) - - Serhii Polishchuk - - Stephen Ostrow (isleshocky77) - - Dylan Delobel (dylandelobel) - - Charles EDOU NZE - - Scott - - ubick - - Marek Bartoš - - Robin Delbaere (rdelbaere) - - Pedro Cordeiro - - NicolasPion - - Tristan Pouliquen (tristanpouliquen) - - Joel Clermont (jclermont) - - Ziad Jammal (ziadjammal) - - babache - - RiffFred - - Rick Burgess - - damienleduc - - TrueGit - - Piotr Potrawiak - - Stepan Mednikov - - Erlang Parasu (erlangparasu) - - Wouter - - tmihalik - - John Williams - - Gilles Gauthier - - lacpandore - - Jan Heller (jahller) - - Bartłomiej Zając (bzajac) - - Eric Poe (ericpoe) - - Nico - - Kevin Raynel - - Jalen Muller (jalenwasjere) - - Steven Chen (squazic) - - Robert Parker (yamiko_ninja) - - Jerome Guilbot (papy_danone) - - Julien "Nayte" Robic - - dpfaffenbauer - - Alex Normand - - Thomas Botton (skeud) - - Théophile Helleboid - chtitux - - Marchegay (xaviermarcheay) - - Felix Schnabel - - Menachem Korf - - Robert Went (robwent) - - Alexander Marinov - - Cristiano Cattaneo (ccattaneo) - - HONORE HOUNWANOU (mercuryseries) - - Kevin Boyd - - David Vigo - - Sam Jarrett - - obsirdian - - Mikhail Kamarouski - - Rick Kuipers - - Mykola Martynov (mykola) - - Jevgenijus Andrijankinas - - Romain Petit - - Matheus Pedroso - - Kane Menicou (kane_menicou) - - Eric Tucker - - Hatem Ben (hatemben) - - Alexander Kim - - Andrii Volin (angy_v) - - Edoardo Rivello (erivello) - - Mart Kop - - Terje Bråten - - Nicolas Lœuillet (nicosomb) - - Jérémy Jumeau (jeremyjumeau) - - Jonathan Clark - - Matthieu Lempereur (matthieulempereur) - - Emilio de la Torre (emiliodelatorrea) - - bouffard (shinmen33) - - Pascal MONTOYA (pmontoya) - - Brian - - Daniel Wendler - - Lenkov Michail (alchimik) - - Susheel Thapa - - Michele Carino - - Marco Polichetti - - Julien EMMANUEL - - Boolean Type (boolean_type) - - Kristijan Stipić (stipic) - - Hyunmin Kim (kigguhholic) - - Kolyunya (kolyunya) - - Adam Mikolaj (mausino) - - Kim Wüstkamp (kimwuestkamp) - - Sergey Falinsky (falinsky) - - Christophe Willemsen (kwattro) - - Alexey Pyltsyn (lex111) - - Jarosław Jakubowski (egger1991) - - Ashen one (berbadger) - - Ezequiel Esnaola - - artf - - Antoine Durieux (adurieux) - - Paul Ferrett (paulf) - - Paweł Tekliński - - Łukasz Pior (piorek) - - Kevin T'Syen (noscope) - - Martin Bens - - Maxime Steinhausser - - Luc Hidalgo (luchidalgo) - - Julien Ferchaud (guns17) - - Rick West - - Augustin Chateau (gus3000) - - Manel Sellés (manelselles) - - Hugo Nicolas (jacquesdurand) - - CHARBONNIER (cyrus) - - Maik Penz - - Lacy (200ok) - - Jarek Ikaniewicz - - Bob van de Vijver - - Cyril Mouttet (placid2000) - - Kevin - - Dean Clatworthy + - Alexandre GESLIN (rednaxe) + - James Cryer (jrcryer) + - Rafał Mnich (rafalmnich-msales) + - Vancoillie + - Daniel Parejo Muñoz (xdaizu) + - nicofrand + - Peter WONG + - Terence Eden + - Chris McMacken (chrism) + - Colin Poushay (poush) + - Adamo Crespi + - BrnvrlUoeey + - Nietono + - ehibes + - Loïc Salanon + - MarkPedron + - Henrik Christensen + - Tim Herlaud + - Vico Dambeck + - Yves ASTIER + - Darien Hager + - Andrei Petre + - Tim Hovius (timhovius) + - Oliver Davies (opdavies) + - Abdellah EL GHAILANI (aelghailani) + - Manuel Andreo Garcia + - Ivan Zugec (zugec) + - Paweł Farys + - vladyslavstartsev + - Jakub Szcześniak (jakubszczesniak) + - Pierre-Emmanuel CAPEL (pecapel) + - Kostas Loupasakis (loupax) + - Gabriel Birke (chiborg) + - aziz benmallouk (aziz403) + - Janne Vuori (jimzalabim) + - Noel + - Tristan LE GACQUE (tristanlegacque) + - Fernando Aguirre Larios (ingaguirrel) + - Quentin Brunet + - Tomáš Tibenský + - Benjamin Laugueux + - Jens Hassler + - Javi H. Gil (javibilbo) + - Chabbert Philippe (philippechab) + - Paulo Rodrigues Pinto (regularjack) + - Yaroslav Kiliba - Dmytro - Jacob Tobiasz (jakubtobiasz) - - Christopher Vrooman - - Guillaume Lasset - - Ellis Benjamin - - Christian - - Adrián Ríos (adridev) - - John Ballinger - - Adamo Crespi - - Paulius Masiliūnas (pauliuz) - - Clément Notin - - Jérémy Crapet - - Andrianovah nirina randriamiamina (novah) - - Jan Dorsman - - Nicolas Rigaud - - Julien (mewt) - - Timur Murtukov (murtukov) - - Veltar - - Timon F. (timon) - - Benoît WERY (benoitwery) - - Krap - - Morgan Thibert (o0morgan0ol) - - sander Haanstra (milosa) - - Florimond Manca - - vmarquez - - Florian VANHECKE - - Zoltan Toth-Czifra - - Chris Halbert - - Steve - - Mohamed YOUNES (medunes) - - Guillaume Rossignol - - Joshua (suabahasa) - - Steven DUBOIS (stevenn) - - Franz Holzinger - - Julian Wagner - - Thomas Talbot - - Hugo Seigle - - alexsaalberg049 - - Augustin Delaporte - - Mantas Varatiejus - - Vladimir Gavrylov - - Boissinot (pierreboissinotlephare) - - Patrik Pacin - - Adam - - Greg (kl3sk) - - Markus Mauksch - - stehled - - Stéphane HULARD (shulard) - - Simon Rolland (sim07) - - M#3 - - Eduardo Thomas Perez del Postigo (aruku) - - Petr (rottenwood) - - Kirill Kotov - - Hmache Abdellah - - Fabien Papet + - Matthieu Renard + - Jonas De Keukelaere + - Sarim Khan (gittu) + - zuhair-naqvi + - Nico + - Christian Heinrich + - Quentin Stoeckel (chteuchteu) + - Eduardo Gulias Davis - Thibaud BARDIN (irvyne) - - Plamen - - Markus Weiland (advancingu) - - Mario Martinez (chichibek) - - matthieu88160 - - Romain GRELET - - Thomas Choquet (chqthomas3) - - Paweł Skotnicki (pskt) - - Euge Starr - - Douglas Naphas - - Nebojša Kamber - - The Phrenologist (phreno) - - Inori + - Alex Normand + - Nicolas Hart (nclshart) + - manu-sparheld + - iqfoundry + - Lorenzo Milesi (maxxer) + - Eugene Wolfson + - Robert Saylor (rsaylor) + - Pim van Gurp + - Soltész Balázs + - Christopher + - Yassine Fikri (yassinefikri) + - Aymeric Mayeux (aymdev) + - venu (venu) + - Arnaud + - Faizan Shaikh + - Rick Ogden + - Axel K. + - Lukáš Brzák (rapemer) + - Lorenzo Ruozzi (lruozzi9) + - Maksym Hubar (nrgone) + - robert Parker + - KosticDusan4D + - Pierre Maraitre + - Olivier Revollat (o_revollat) + - Mitchel (mitch) + - Pedro Gimenez + - Jorick Pepin (jorick) + - David Baucum + - Fatih Ergüven (erguven) + - Bruno Vitorino + - markspare + - jeanhadrien + - jdevinemt + - AntoJ (merguezzz) + - Leo + - Vladyslav Riabchenko + - Salavat Sitdikov (sitsalavat) + - Chris Johnson + - lajosthiel + - matt smith (dr-matt-smith2) + - Artem Henvald + - nietonfir + - James (acidjames) + - MarvinBlstrli + - Katharina Störmer + - Yosip Curiel (snake77se) + - Matthew Loberg (mloberg) + - Dmitriy Fishman (fishmandev) + - Jérémy Halin + - Arvydas K + - guangle + - alexmart + - Oliver Forral (intrepion) + - Thomas from api.video + - Lambert Beekhuis (lambertb) + - Ivan Ternovtsiy + - tamir van-spier (tamirvs) + - Tony Cosentino + - Sela + - Volen Davidov + - Cristi Contiu (cristi-contiu) + - Markus Tacker + - Gabriel Theron + - Jan Richter - Axel Vankrunkelsven - - Sofien NAAS - - Ilya Bakhlin - - analogic - - asandjivy - - runephilosof-abtion - - Krzysztof Lament - - Colin DeCarlo (colindecarlo) - - Michaël Demeyer - - Thomas Lomas (tomlomas) - - Liang Jin Chao (leunggamciu) - - zuhair-naqvi - - Prakash Thapa (thapame) - - Andrej Rypo - - Stephan Dee - - fishbone1 - - Brooks Van Buren (brooksvb) - - Benjamin Porquet - - Cangit - - Maninder Singh (maninder) - - Michał (mleczakm) - - b0nd0 - - Damien - - Markus Mauksch - - Carsten Blüm (bluem) - - Tomas Nemeikšis (niumis) - - Guilherme Donato - - Loïc Caillieux (loic.caillieux) - - Maxime Douailin - - broiniac - - Adrien LUCAS - - Daniel Platt (hackzilla) - - Yohann Durand (yohann-durand) - - Sébastien Rogier (srogier) - - William JEHANNE (william_jehanne) - - mhor (mhor) - - richardudovich - - alex00ds - - Daniel Haaker (dhaaker) - - Sait KURT (deswa) - - kallard1 - - vesselind - - Jess + - Artur Weigandt + - MaharishiCanada + - Derek Roth (derekroth) + - jenyak + - Stephen Clouse + - VisionPages + - Omar Brahimi (omarbrahimi) + - Seikilos + - Benjamin Lazarecki (benjaminlazarecki) + - Jose R. Prieto + - Mark Challoner + - Julian Mallett (jxmallett) + - Alexandre Gérault (alexandre-gerault) + - Patrik Gmitter (patie) + - René Backhaus + - Augustin Delaporte - miqrogroove - - Tommi - - Jon Eastman - - Rafa Couto - - Ben Glassman (benglass) - - Alfonso M. García Astorga (alfonsomga) - - ipf + - Roger Webb (webb.roger) + - Kai Eichinger (kai_eichinger) + - ameotoko + - Maurice Svay (mauricesvay) + - Richard Tuin (rtuin) + - z38 + - Travis Yang (oopsfrogs) + - Keefe Kwan (kkwan) + - Paul Ferrett (paulf) + - Łukasz Pior (piorek) + - Alex Kyriakidis + - Peter Hauke + - timo002 + - Jens Pliester + - zeroUno + - royswale + - Jérémy Crapet + - Dan Zera + - Matthias Noback (mnoback) + - Florian Semm (floriansemm) + - Nikola Kuzmanović (nkuzman) + - Jack Delin (jackdelin) + - Eirik Alfstad Johansen (nmeirik) + - Vincent Amstoutz + - Kolja Zuelsdorf + - Panda INC (pandalowry) + - EtienneHosman + - Mihail Kyosev (php_lamer) + - Patrick Bielen + - Arnaud Lemercier + - guesmiii + - wkania + - Jannik + - Kevin Mark + - Pedro Cordeiro + - Petar Petković + - Philippe Villiers + - Raphaël Davaillaud + - Wojciech Kania + - Denis Dudarev + - Open Orchestra (open-orchestra) + - Issam KHADIRI (ikhadiri) + - Thibaut Leneveu + - berbeflo + - Jérémie Samson (jsamson) + - Danny + - Yannick (yannickdurden) + - Ali Yousefi (aliyousefi) + - Tomasz Ducin (tkoomzaaskz) + - Simon Schubert (simon-schubert) + - Valyaev Ilya (rumours86) + - Ezequiel Esnaola + - Benjamin Porquet + - Cangit + - Nikita + - Krzysztof Lechowski (kshishkin) + - Przemek Maszczynski + - Yuriy Sergeev (youser) + - Zéfyx + - Samuel Wicky + - Happy (ha99ys) - Jean-François Lépine (halleck45) - - Kevin Pires (takiin) - - Sakulbl - - Sarah-eit - - James Seconde (secondejk) - - Fabian Becker - - CaDJoU - - Jalen - - Иван - - gong023 - - elescot - - eric fernance (ericrobert) - - Timo Tewes - - g@8vue.com - - xaav - - Denis Brumann - - Vladyslav Riabchenko - - Art Matsak + - Cassian Assael (crozet) + - Albert Moreno + - Cyril VERLOOP (cyrilverloop) + - Daniel Degasperi (ddegasperi) + - Ivan Gantsev + - Aymen Bouchekoua (nightfox) + - sirprize + - Nicolas Dievart (youri) + - Sascha Egerer + - Anthony FACHAUX + - Xbird + - George Zankevich + - Xavier Coureau - Michael Lenahan - - Pierre Trollé + - Sebastian Bergmann + - Clement Ridoret + - Xavier RIGAL + - Pau Oliveras (poliveras) + - Roberto Lombi + - Julien Gidel + - jerzy-dudzic + - Rafael Gil (cybervoid) + - Alaa AttyaMohamed (alaaattya) + - New To Vaux + - Edym Komlan BEDY (youngmustes) + - Mickaël Bourgier (chapa) + - Mantas Varatiejus + - Unai Roldán (unairoldan) + - de l'Hamaide + - Chase Noel (chasen) - Shaun Simmons (simshaun) - - ruslan-fidesio - - Giacomo Moscardini - - Quentin Fahrner (renrhaf) - - Remi - - Calin Pristavu (calinpristavu) - - Sam Korn - - Tajh Leitso (tajh) - - decima - - Dmitry Kolesnikov (kastaneda) - - Malte N (hice3000) - - Jay-Way - - lucbu - - Giovanni Gioffreda (tapeworm) - - Ilya Bakhlin Lebedev - - DerStoffel - - Gabriel Theron - - Andrei Petre - - Maurice Svay (mauricesvay) - - Philipp Christen - - homersimpsons - - Philippe Milot - - Charles Winebrinner - - Jean Pasdeloup - - Andrea Bergamasco (vjandrea) - - Bart Vanderstukken (sneakyvv) + - M#3 + - Leanna Pelham (leannapelham) + - Mathieu Capdeville + - Jeremy Emery + - Vincent Chareunphol (devoji) + - Alexandr Podgorbunschih (apodgorbunschih) + - Hans Allis (hansallis) + - kruglikov + - Aurelijus Banelis (aurelijusb) + - Egidijus Girčys (egircys) + - heddi.nabbisen + - Kevin Carmody (skinofstars) + - Arnaud VEBER (veberarnaud) + - Ivan Nemets + - Andrey Melnikov + - Edin Rustempašić (edin) + - Shamil Nunhuck (shamil) + - Josef Vitu + - Ruud Kamphuis + - Daniel Klein + - Ricardo Rentería + - Matheus Pedroso + - James Isaac + - Petr Kessler + - Gilles Fabio + - Michel ANTOINE (antoin_m) + - Gonzalo Alonso (gonzakpo) + - jivot + - Marius-Liviu Balan (liv_romania) + - fberthereau + - Danil Pyatnitsev (pyatnitsev) + - Claudio Zizza + - LICKEL Gaetan (cilaginept) + - R1n0x + - Vincent Le Biannic + - Gustavo Henrique Mascarenhas Machado + - Romain Biard (rbiard) + - Charcosset Johnny + - Shiraz (zpine) + - Norman Soetbeer (battlerattle) + - Carlos Granados + - andybeak + - Marko Mijailovic + - Clément MICHELET (chiendelune) + - Levin + - Francesco Abeni + - Lauri + - rs + - Heaven31415 - Angelo Galleja (ga.n) - - Baptiste Pottier (baptistepottier) - - Chris Thompson (toot) - - shkkmo - - Maelan LE BORGNE (maelanleborgne) - - Deng Zhi Cheng - - Sela - - Antonio Jesús - - Slava Belokurski (slavchoo) - - Sebastian Klaus - - Paulius Podolskis (wsuff) - - Axel K. + - Timur Murtukov (murtukov) + - Yair Silbermintz (mrglass) + - Tim Glabisch + - Erik (erikroelofs) + - samson daniel (samayo) + - Zairig Imad + - Ousmane NDIAYE + - Abdellah Ramadan (abdellahrk) + - Thomas (razbounak) + - Carsten Blüm (bluem) + - Markus Mauksch + - DKravtsov + - Arc Tod + - VelvetMirror + - Pierre + - Pavel Bezdverniy + - Dhanushka Samarakoon + - yanickj + - zan-vseved + - Vladimir Jimenez + - Janusz Slota (janusz.slota) + - Krzysztof Lament + - antoinediligent + - Pierre Joube (pierrejoube) + - SirRFI + - Mario Young + - gong023 + - Sebastian G. (bestog) + - Pierre Joye (pierre) + - Bastien70 + - xaav + - Christopher Cardea + - Jerome Gangneux + - Justin Liiper (liiper) + - Brian + - Florian Rusch + - Marvin Butkereit + - Žilvinas Kuusas (kuusas) + - M E (ttc) + - Stepan Mednikov + - Kevin T'Syen (noscope) + - David Ward (roverwolf) + - danjamin + - pavemaksim + - Danielle Suurlant (dsuurlant) + - Brian Gallagher + - Alexandre Mallet (woprrr) + - Vivien Tedesco (vivient) + - Greg Berger + - Pierre Bobiet + - mehlichmeyer + - Kim Wüstkamp (kimwuestkamp) + - Hatem Ben (hatemben) + - Matt Janssen + - gnito-org + - LesRouxDominerontLeMonde + - Eric Poe (ericpoe) + - Philip Ardery + - Andrey Lukin (wtorsi) + - Kevin Lot + - Arndt H. Ziegler + - Hugo Locurcio + - Louis Racicot (lord_stan) + - Florian-B + - Zsolt Javorszky (zsjavorszky) + - Marco Barberis + - kenjis (kenjis) + - Xavier + - Michael Staatz + - Matthieu Braure (taliesin) + - Steven + - Thomas Talbot + - Virginia Meijer + - Linas Linartas (linas_linartas) + - tuanalumi + - healdropper + - Steve + - Julian Wagner + - Ramzi Abdelaziz (ramzi_a) + - Maximilian + - Adam Boardman (boardyuk) + - Franz Holzinger + - belghiti idriss (belghiti) - Christopher - - Simon Daigre (simondgre) - - Reza - - Aurélien Morvan - - Dimitar - - Pedro Piedade - - Dmitri Perunov - - Андрей - - mvanmeerbeck - - Tim - - Ondřej Vodáček - - Brice Lalu (bricelalu) - - Kilian Riou (redheness) - - amelie le coz (amelielcz) + - Kai (kai_dederichs) + - r-ant-2468 + - Dries Vints + - Petr (rottenwood) + - Alex Salguero + - Rhodri Pugh + - Emil Santi (emilius) + - Martin Bens + - Fanny Gautier + - Fabien (fabiencambournac) + - Florian Moser + - Yuri Tkachenko (tamtamchik) + - Tony Tran (tony-tran) + - Sorin Dumitrescu (sfdumi) + - Grégory Quatannens (gscorpio) + - Guillaume Lasset + - Vilius Grigaliūnas + - Boissinot (pierreboissinotlephare) + - Erlang Parasu (erlangparasu) + - Michel D'HOOGE (mdhooge) + - Nicolae Astefanoaie (stelu26) + - Benoît + - Olena Kirichok + - José María Sanchidrián (sanmar) + - Severin J + - Savvas Alexandrou (savvasal) + - fguimier + - Bart Vanderstukken (sneakyvv) + - Luca Suriano (lucas05) + - Vyacheslav Pavlov + - progga - Omer Karadagli (omer) - - Carlos Sánchez (carlossg00) - - Ivan Gantsev - - Michał Szczech (miisieq) - - ioanok - - Sébastien FUCHS - - Lopton - - Jorisros (jorisros) - - joelindix - - heddi.nabbisen - - twisted1919 - - Ladislav Kubes - - Jelmer Snoeck (jelmersnoeck) - - Alden Weddleton (wnedla) - - Stefan Topfstedt + - Tsimafei Charniauski (varloc2000) + - iarro + - Halil Özgür + - Mike Zukowsky + - Andreas Larssen + - Florian Belhomme + - mimol91 + - Nico Schoenmaker + - Boolean Type (boolean_type) + - Bartek Nowotarski + - Ludovic REUS + - Lluis Toyos (tolbier) + - Arnaud Thibaudet (kojiro) + - Aaron Valandra + - OИUЯd da silva + - Wojciech Sznapka + - Richard Perez (richardpq) + - fridde + - Damien Fayet + - linuxprocess + - Dustin Meiner + - Matthias Gutjahr (mattsches) + - Fabien Papet + - Tobias Olry (tolry) + - Massimo Ruggirello + - Iulian Popa (iulyanp) + - Giulio De Donato + - Glen Jaguin (gl3n) - Xavier Laviron (norival) - - vgmaarten - - Guillaume PARIS (gparis) - - Beno!t POLASZEK - - Tim Glabisch + - Jonathan Huteau (jonht) + - revollat + - Fred Jiles (fredjiles) + - Stefan Topfstedt + - Joachim Martin (michaoj) + - Thomas Decaux (ebuildy) + - saf (asd435) + - BooleanType + - Enzo Santamaria + - Christophe Willemsen (kwattro) + - Alex Luneburg + - David Zuelke (dzuelke) + - Joan Teixido (joanteixi) + - Julien "Nayte" Robic + - Reza + - Kevin + - Patrik Csak + - Fabien Bourigault + - Pavel Jurecka + - Al-Saleh KEITA + - Simon Perdrisat (gagarine) - Michael Smith (michaelesmith) - - wouthoekstra + - Jochem Klaver + - xavierkaitha94 + - Kris + - Arnaud Pflieger + - Deng Zhi Cheng + - Martin Ninov (martixy) + - Kevin Boyd + - HONORE HOUNWANOU (mercuryseries) + - Benjamin Toussaint + - Mike Bissett + - laurent negre + - Michaël Marinetti + - Joppe de Cuyper + - Jeroen Deviaene + - Michael Y Kopinsky (mkopinsky) + - Nebojša Kamber + - AdrianBorodziuk + - Thomas BILLARD + - Corentin + - vindby23 + - Michał Wujas + - ipatiev + - elescot + - eric fernance (ericrobert) + - Timo Tewes + - Slobodan Stanic + - Bartek Chmura + - yordandv + - Alexey Samara + - Paweł Krynicki (kryniol) + - Amine Matmati (aminemat) + - Sofien NAAS + - Jean-Philippe Dépigny + - hidde.wieringa + - Fabrice GARES (fabrice_g) + - David McKay + - Vincent + - Baptiste Fotia (zak39) + - Leonardo Losoviz (leoloso) + - chance garcia + - Dan Tormey (dstormey) + - Joe + - Kwadz + - Willem-Jan Zijderveld (wjzijderveld) + - Marcus Stöhr + - AmalricBzh + - kolossa + - Geert Eltink + - Martin Melka + - Ali Arfeen + - Marko Kunic (kunicmarko20) + - Dean Clatworthy + - Sergey Falinsky (falinsky) + - Willem Stuursma-Ruwen + - Jacek Jędrzejewski + - Benjamin Sureau + - Deepak Kumar + - AntoineRoue - Philipp Bräutigam - - Adam Duffield - - Yopai - - Pavel Shirmanov (genzo) - - Rodrigo Capilé (rcapile) - - Ousmane NDIAYE + - partulaj + - Matthias - ABRAHAM Morgan - - David Harding - - Andrii Mishchenko (krlove) - - Sarim Khan (gittu) - - Rafał Mnich (rafalmnich-msales) - - Kevin Carmody (skinofstars) - - matheo - - Shambhu Kumar (shambhu384) - - Jeroen - - Thomas P - - Steven - - Goran Grbic (tpojka) - - Gilles Taupenas - - berbeflo - - Valentin GRAGLIA - - Mehmet Gökalp (mehgokalp) - - Léo - - Sylvain Blondeau - - Julien Dubois - - Thomas (razbounak) - - Slaven (sbacelic) - - Martin Czerwinski - - Shamil Nunhuck (shamil) - - Thomas Lemaire - - Julian (c33s) - - Jordan Bradford - - Francisco Javier Aceituno (javiacei) - - Xavier Laviron - - Alexander Dubovskoy - - manoakys - - Bruno Baguette (tournesol) - - Jeroen v.d. Gulik (jeroen) - - Tobias Schmidt (tobias-schmidt) - - Soltész Balázs - - Maciej Kosiarski - - Roger Webb (webb.roger) - - Marek Szymeczko - - Egor Ushakov (erop) - - Simon Schubert (simon-schubert) - - Daniel LIma (yourwebmaker) - - Murilo Lobato (murilolobato) - - Chabbert Philippe (philippechab) - - kempha - - Sven Petersen - - Maximilian - - Philippe Villiers - - Hocdoc - - Zairig Imad - - Jannik - - Grégory Quatannens (gscorpio) - - Sven Liefgen - - Greg Berger - - Eliú Timaná - - Robin Brisa - - Alex Kyriakidis - - Yves ASTIER - - tchap - - Souhail (souhail_5) - - Vilius Grigaliūnas - - Son Tung PHAM - - Alessandro Podo - - Thomas Miceli (tomus) - - Niklas Grießer - - Elbert van de Put - - cirrosol - - Mathieu - - Kolja Zuelsdorf - - Michael Dwyer (kalifg) - - Manuel Andreo Garcia - - Andrey Melnikov - - Tobias Hermann - - Kiel Goodman - - Robert Podwika - - Claudio Zizza - - Christian Alexander Wolf + - Christoph Grabenstein + - guidokritz + - Gytis Šk + - Raphaël Riehl + - Maximilian Bosch + - Sylvain Lelièvre + - PHAS Developer + - Giovanni Gioffreda (tapeworm) + - Jason Aller (jraller) + - ackerman + - Zaid Rashwani (zrashwani) + - Clayton + - The Phrenologist (phreno) + - Tom Haskins-Vaughan + - faissaloux + - Roman Martinuk + - technetium + - Christian + - Joel Costa (joelrfcosta) + - vihuarar + - M.Wiesner + - Dimitri Labouesse + - Nils Silbernagel + - Marie CHARLES (mariecharles) + - François MARTIN + - Gergely Pap + - Quentin Boulard + - Babar Al-Amin (babar) + - Jason McCallister (jasonmccallister) + - pavdovlatov + - Dmitriy + - Andrey Shark (astery) + - Godfrey Laswai + - Michaël Perrin + - Yassine Hadj messaoud + - Bob van de Vijver + - Lacy (200ok) + - lbraconnier2 + - Félix Fouillet + - Sacha Durand (sacha_durand) + - Brice Lalu (bricelalu) + - Christian Kolb (liplex) + - Hyunmin Kim (kigguhholic) + - Kolyunya (kolyunya) + - Katharina Floh (katharina-floh) + - Robert Treacy (robwasripped) + - Robin C + - Richard Hoar + - Simon Appelt + - alex00ds + - Moroine Bentefrit + - Denys Pasishnyi (dpcat237) + - Paris mikael (stood) + - Alexey Pyltsyn (lex111) + - Ryszard Piotrowski (richardpi) + - Nathan Giesbrecht + - Nuno Ferreira (nunojsferreira) + - Ronan Guilloux (ronan) + - Marek Nocoń + - Nelson da Costa + - Massimo Giagnoni (mgiagnoni) + - homersimpsons + - Mitchell + - Giuseppe Petraroli + - Kevin de Heer + - richardudovich + - Florian Körner (koernerws) + - Younes OUASSI (youassi) + - Asma Drissi (adrissi) + - Lenkov Michail (alchimik) + - damienleduc + - Maelan LE BORGNE (maelanleborgne) + - David Negreira Rios (davidn) + - mhor (mhor) + - John Spaetzel + - Kevin Papst + - mismailzai + - Peter + - Erik Trapman + - Ben Huebscher (huebs) + - Stephen Ostrow (isleshocky77) + - Stéphane P + - Pierre Maraître (balamung) + - Denis Brumann + - Estelle Gaits (estellegaits) + - Alejandro García Rodríguez (alejgarciarodriguez) + - imam harir (luxferoo) + - Simon + - Thibault Miscoria (tmiscoria) + - Jan Heller (jahller) + - Damien Tournoud + - Tom Troyer + - Hector Hurtarte (hectorh30) + - Manoj Kumar + - unknown + - Dan Abrey + - ThamiSadouk + - ifiroth + - Marijn Huizendveld + - Valerio Colella + - Michael COULLERET (20uf) + - Frédéric Lesueurs + - Julien Humbert + - Pouyan Azari + - Daichi Kamemoto (yudoufu) + - nencho nencho (nencho) + - Gianluca Farinelli (rshelter) + - Sam Korn + - Markus Frühauf + - Andrea Cristaudo + - concilioinvest + - Jan Klan (janklan) + - Mark Badolato (mbadolato) + - Philippe Gamache (philippegamache) + - pgorod + - Hmache Abdellah + - Alessio Pierobon (alepsys) + - Laurent Moreau (laulibrius) - sparrowek - - Patryk Miedziaszczyk - - lucchese-pd - - JohnyProkie (john_prokie) - - ABOULHAJ Abdelhakim (hakim_aboulhaj) - - autiquet axel - - Artur - - Simon BLUM (simonblum) - - Philippe Mine (dispositif) - - Paweł Krynicki (kryniol) + - Thao Nguyen (thaowitkam) + - Jure Žitnik + - Paulius Masiliūnas (pauliuz) + - Andy Dawson + - William JEHANNE (william_jehanne) + - Serge Velikanov + - Dalius Kalvaitis (daliuskal) + - Houssem ZITOUN + - Danny van Wijk (dannyvw) + - Wagner Nicolas (n1c01a5) + - Jon Cave - Myystigri - - David Paz (davidmpaz) - - Lukas W - - Ldiro - - Petar Petković - - michael kimsal (kimsal) - - Raphaël Davaillaud - - Ozan Akman - - Jérémie Samson (jsamson) - - mark2016 + - V. K. (cn007b) + - Danilo Sanchi (danilo.sanchi) + - Therage Kevin + - Romain Card + - ymc-sise + - Alexis Urien (axi35) + - Slaven (sbacelic) + - Gennadi Janzen + - Arne + - Sergey Belyshkin + - Zombaya + - Arnaud Lejosne + - Kanat Gailimov + - Mohsen + - Jose F. Calcerrada (jfcalcerrada) + - Jordi Freixa Serrabassa - Aurélien Thieriot + - Bruno Ferme Gasparin (bfgasparin) + - Sarah-eit + - Rémi Andrieux (pimolo) + - fplante + - tmihalik + - Prathap + - Alden Weddleton (wnedla) + - Wanne Van Camp + - Raistlfiren + - Florian Cellier (kark) + - Ladislav Kubes + - Christian Weyand (weyandch) + - Florian Moser + - Dmytro Bazavluk + - Timo Haberkern (thaberkern) + - Jérémy BLONDEAU (jblondeau2) + - Kristof Coomans (cyberwolf) + - Greg Box (gregfriedrice) + - Fayez Naccache (fnash) + - PululuK + - Aurélien ADAM (aadam) + - Vladimir + - Zenobius + - ousmane NDIAYE (ousmane) + - Travis Carden + - David Schmidt + - Steve Clay (mrclay) + - Kerrial (kez) + - clément larrieu + - Vlad Ghita (vghita) + - Enache Codrut + - Andrianovah nirina randriamiamina (novah) + - Archie Vasyatkin + - pfleu + - Sherin Bloemendaal + - Jonathan Finch + - Cédric Spalvieri (skwi) + - Susheel Thapa + - xamgreen + - Barun + - Milan Pavkovic + - kirill-oficerov + - Pierre Spring + - andrecadete + - Reio Remma + - David Lumaye + - Marius Adam + - Jasperator + - Marco Polichetti + - beejaz + - Dmitri Perunov + - Alexandre Castelain (calex_92) + - Dan Finnie + - Antonio Spinelli + - Luděk Uiberlay (ne0) + - authentictech + - Marcin Muszynski + - ArlingtonHouse + - Kevin Raynel + - Alfonso Machado Benito (almacbe) + - damien-louis + - silver-dima + - Gintautas + - Kris + - Markus Virtanen + - adursun + - Thijs Feryn + - Lucas Mlsna + - Baptiste Pizzighini (bpizzi) + - Matheo D + - Léo PLANUS + - Jonathan Lee (jclee2) + - E Demirtas + - Neal Brooks (nealio82) + - Julien EMMANUEL + - srich387 + - Michael H + - Yann Klis + - Angelo Melonas (angelomelonas) + - WILLEMS Laurent (willemsl) + - Damien Carrier (mirakusan) + - Rémi T'JAMPENS (tjamps) + - Mbechezi Mlanawo + - copilot-swe-agent[bot] + - oussama khachiai (geekdos) + - Fouad + - sebio + - Kamil Pešek (kamil_pesek) + - Zahir Saad Bouzid + - Armen Mkrtchyan (iamtankist) + - Romaxx + - Jason Bouffard (jpb0104) + - Vladimir Gavrylov + - Sven Zissner (svenzissner) + - Pavel Nemchenko (nemoipaha) + - ruslan-fidesio + - roga + - Mrtn Schndlr + - Adrián Ríos (adridev) + - Masaharu Suizu + - Mahdi Maghrooni + - Szurovecz János + - Mark Smith (zfce) + - Simon Rolland (sim07) + - muxator + - Marius Balčytis + - Jeff Zohrab + - Tom Maaswinkel (thedevilonline) + - Tommy Quissens (quisse) + - adreeun + - pbijl (pbijl) + - Leanna Pelham + - Benj + - Adil YASSINE ✌️ (sf2developer) + - gertdepagter + - Florian CAVASIN + - Beno!t POLASZEK + - rschillinger + - Vincent Terraillon (lou-terrailloune) + - Jan Pieper + - Johan de Jager + - Eike Send + - Michal Zuber + - ptrm04 + - Hylke + - Benjamin D. (benito103e) + - Marc Wustrack (muffe) + - Paweł Małolepszy (pmalolepszy) + - Theo Tzaferis + - Urs Kobald (scopeli) + - Éric + - Mathieu + - Simon Epskamp + - M.Eng. René Schwarz + - John Williams + - Gilles Gauthier + - Roy Templeman + - Sethunath K (sethunath) + - Jalen Muller (jalenwasjere) + - Manuel Transfeld + - Julian (c33s) + - Yannick + - helmi dridi + - Guillaume Sarramegna + - Oliver Stark (oliver.stark) + - wazz42 + - Serhii Polishchuk + - Mehmet Gökalp (mehgokalp) + - Tomi Saarinen (tomis) + - pamuche + - Tarjei Huse (symfony_cloud) + - Alex Brims (outspaced) + - Ilya Bakhlin Lebedev + - Xavier Laviron + - lusavuvu + - Andrii Volin (angy_v) + - Chloé B. + - Nurlan Alekberov + - Maxime Steinhausser + - Julio (gugli100) - Tim Werdin - - Cullen Walsh - - Denis Rendler - - Yoann B (yoann) - - Max R (maxr) - - Artem Ostretsov - - fplante - - proArtex - - Csaba Maulis (senki) - - Mustafa Ehsan Alokozay - - Paweł Farys - - András Debreczeni - Aldo Zarza (azarzag) - - Artur 'Wodor' Wielogorski - - Benjamin Zaslavsky - - Gennadi Janzen - - Vincent - - pamuche - - Christophe Debruel (krike06) - - Mitchell - - Chris Bitler - - Laurent Marquet - - Gun5m0k3 - - Nicolas Mugnier - - Quentin ADADAIN - - Timotheus Israel (dieisraels) - - Mihail Kyosev (php_lamer) - - Christian Kolb (liplex) - - Viktor Linkin (adrenalinkin) - - mismailzai - - Michel ANTOINE (antoin_m) - - Maximilien BERNARD (mb3rnard) - - Luke Kysow - - stormoPL - - EtienneHosman - - Julien Humbert - - Paul Rijke (parijke) - - jpache - - matthieudelmas - - Alex Soyer - - Grant Gaudet - - Derek Roth (derekroth) - - Daniel Werner (powerdan) - - Stephen Clouse - - VisionPages - - Seikilos - - CodyFortenberry - - Alexander Diebler - - Nelson da Costa - - illusionOfParadise - - Andreas - - Matthias - - hamzabas - - LiVsI - - runawaycoin - - Hylke - - Jens Hassler - - Sebastian Kuhlmann (zebba) - - Epari Siva Kumar - - JhonnyL - - wkania - - Florent - - Martijn Zijlstra - - Ahmed Bouras + - Ulrich Völkel (udev) + - Daniel Santana + - Dilantha Nanayakkara + - Jacob Dreesen + - LOUVEL Mathieu (louvelmathieu) + - Mindaugas Liubinas (meandog) + - Caliendo Julien + - Jorge Sepulveda + - Reza Rabbani + - Reinier Butôt + - fernandokarpinski + - Ali Zahedi (aliz9271) + - S Berder + - Mark Deanil Vicente (dvincent3) + - Micheal Cottingham (micheal) + - Karsten Gohm (kasn) + - Nassim + - Ahmed El Moden + - Lee Boynton + - Bastien Picharles (kleinast) + - Mustafa Ehsan Alokozay + - Francisco Calderón (fcalderon) + - sebpacz + - dcramble + - XitasoChris + - Victor Melnik (gremlin) + - Michael Grinko + - Pierre-Yves Dick (pyrrah) - Marc Verney - - zan-vseved - - Thomas BILLARD - - I. Fournier - - Juan Riquelme - - Florent Destremau + - Rob Gagnon + - marcagrio + - Steve Nebes + - Nebojša Kamber + - Peter + - Ana Cicconi + - A S M Sadiqul Islam (sadiq) - Robert Nagy - - bdujon - - Tom Nguyen - - Damien Carrier (mirakusan) - - Avindra Goolcharan - - Yngve Høiseth - - Jonathan Lee (jclee2) - - Quentin Brunet - - Manuel Transfeld - - Łukasz Bownik (arkasian) - - Roy Templeman - - Thibault Pelloquin (thibault_pelloquin) - - Linus Karlsson - - Uri Goldshtein - - Salavat Sitdikov (sitsalavat) - - Wolfgang Weintritt (wolwe) - - LICKEL Gaetan (cilaginept) - - Rylix - - Vyacheslav Pavlov - - Ka (Karim Cassam Chenaï) - - Bert Van de Casteele - - Benjamin Toussaint - - Davor Plehati (dplehati) - - Maikel Ortega Hernández (maikeloh) - - Mathias Geat (maffibk) - - Denis Soriano (dsoriano) - - Clement Ridoret - - Thibaut Leneveu - - andybeak - - Virginia Meijer - - ampt . (ampt) - - Denis-Florin Rendler - - Daniel West (silverbackdan) - - Richard Lynskey - - chance garcia - - Jan Klan (janklan) - - Adam Boardman (boardyuk) - - yordandv - - Qiangjun Ran (jungle) - - Pierre de Soos - - saf (asd435) - - Mohd Shakir Zakaria (mohdshakir) - - Anthony Rey (sydney_o9) - - Baptiste Fotia (zak39) - - Dan Tormey (dstormey) - - Yuriy Sergeev (youser) - - Michaël Marinetti - - entering - - Markus Tacker - - Greg Box (gregfriedrice) - - adreeun - - Caliendo Julien + - I. Fournier + - Greg Pluta + - Ricardo Peters (listerical) + - Nelu Buga + - Jarek Ikaniewicz + - Kamil Kuzminski (qzminski) + - Kristian Zondervan (krizon) + - Markus Thielen (mathielen) + - Robin Cawser (robcaw) + - Ruslan + - Sam Hudson + - Oleksandr Savchenko (asavchenko) + - lacpandore + - Evgeniy Gavrilov + - Patryk Miedziaszczyk + - Matthieu Lempereur (matthieulempereur) + - Maninder Singh (maninder) + - Andras Ratz (ghostika) + - Gabriel Bugeaud + - Rick Pastoor + - Jan Myszkier + - Edson Medina + - TheSidSpears + - Paweł Tekliński + - Rodrigo Rigotti Mammano (rodrigorigotti) + - Oliver Adria + - Alessandro Podo + - Richard Miller + - Roman (grn-it) + - Pascal MONTOYA (pmontoya) + - Dynèsh Hassanaly (dynesh) + - fullbl + - Julien Bonnier (jbonnier) + - Daniel Wendler + - David Desberg + - Vladislav Lezhnev (livsi) + - matthieudelmas + - Niels Vermaut (nielsvermaut) + - Mathias STRASSER + - JhonnyL + - Greg Berger + - Ian Kevin Irlen (kevinirlen) + - Micha Alt + - Yoan Bernabeu + - Sergey Podgornyy (sergey_podgornyy) + - Greg Somers + - Alex Soyer + - Andrey (quiss) + - seangallavan + - Matthew Ratzke (flyboarder) + - Joel Doyle (oylex) + - van truong PHAN (vantruongphan) + - Lauri + - Mimi + - Szymon Dudziak + - Vadim Bondarenko + - Kevin + - Baptiste Pottier (baptistepottier) + - Quentin Fahrner (renrhaf) + - Patrick PawseyVale + - Greg (kl3sk) + - Alfonso M. García Astorga (alfonsomga) + - Luc + - Benjamin Clay (ternel) + - Anand (anandagra) + - Kevin Pires (takiin) + - Stacy Horton + - cvdwel + - Bruce Phillips + - Fabian Becker + - Christopher Vrooman + - Eugene Dounar + - Tamás Molnár (moltam) - Alexandre Balmes (pocky) - - Kristof Coomans (cyberwolf) - - Wojciech Międzybrodzki (wojciechem) + - Jonathan Clark + - David Harding + - Nicolas GIRAUD (niconoe) + - Bruno Vitorino + - wiese + - wbob + - Guilherme Donato + - Stefan hr Berder + - Linus Karlsson + - Egidijus Gircys + - Baptiste Langlade + - phiamo + - Hari K T (harikt) + - Conrad Pankoff + - Cosmin Mihai Sandu (cosminsandu) + - Frederik Schubert + - Gauthier Gilles + - Michele Carino + - Szyszewski + - Marius Büscher (mbuescher) + - Idziak - Rob Meijer (robmeijer) - - romain - - Tom Maaswinkel (thedevilonline) - - Doug Smith (dcsmith) - - Jay Williams (jaywilliams) - - Aurélien MARTIN - - jfhovinne - - Dennis de Best (monsteroreo) - - phoefnagel - - Karel (xwb) - - vladyslavstartsev - - robert Parker - - Constantin Ross - - Jan G. (jan) + - Andrei + - Camille Jouan (ca-jou) + - Johan de Jager (dejagersh) + - PéCé + - Gary Kovar + - A goazil + - Nils Freigang (pueppiblue) + - Valentin Ferriere (choomz) + - Cosmic Mac + - Valter Carneiro da Silva Junior (valterjrdev) + - Daniele Ambrosino + - Kevin R + - Tom Grandy + - Josh Kalderimis + - Sébastien Lourseau + - Sam Hudson + - Joshua Morse (joshuamorse) + - Alexander Diebler + - Aleksandr Frolov (thephilosoft) + - Julien Janvier + - Ondrej Vana (kachnitel) + - Andrii Mishchenko (krlove) + - Yngve Høiseth + - LiVsI + - Nicolas Potier (npotier) + - zeggel + - pathmissing + - Steven Chen (squazic) + - Jeroen + - Art Matsak + - Bruno Casali + - Eöras + - Michał (mleczakm) + - Kilian Riou (redheness) + - Remi + - Mathieu Ducrot (mathieu-ducrot) + - Stéphane Paul BENTZ (spbentz) + - Hamza Makraz + - moon-watcher + - Tom Nguyen + - Andrei Chugunov + - Laurens Laman (laulaman) - Louis-Arnaud - - Alexandre Bertrand - - Kevin - - rayrigam - - Marko Kunic (kunicmarko20) - - V. K. (cn007b) - - Aymen Bouchekoua (nightfox) - - zeroUno - - Samuel Wicky - - Petr Kessler - - tikoutare - - Frank J. Gómez - - Andrew Cherabaev + - Abdellatif Derbel (abdellatif) + - Damien DE SOUSA (dades) + - Abdelkader Bouadjadja (medinae) + - Aalaap Ghag (aalaap) + - Jo Meuwis (jo_meuwis) + - Pierre Pélisset (ppelisset) + - Luka Žitnik + - Christopher Tatro + - Maciej Kosiarski + - proArtex + - Daniel LIma (yourwebmaker) + - oyerli + - Ka (Karim Cassam Chenaï) + - Alex Ghiban (drew7721) + - jonasarts + - Oleg Zinchenko + - Michael BOUVY (moon06) + - Charles Pourcel (ch.pourcel) + - Stefan Grootscholten (stefan_grootscholten) + - Atchia Mohammad Annas Yacoob (annas-atchia) + - Juan Riquelme + - jfhovinne + - Ashen one (berbadger) + - Erwan Richard (erichard) + - Björn Fromme (bjo3rn) - Maarten de Keizer (maartendekeizer) - - Darmen Amanbayev - - Robin Willig (dragonito) - - Jarvis Stubblefield (ballisticpain) + - Lee Jorgensen (profmoriarty) + - jsarracco + - Kieran Black + - michael schouman (metalmini) + - Morgan Thibert (o0morgan0ol) + - Martijn Zijlstra + - ThomasGallet + - lucchese-pd + - Adam Mikolaj (mausino) + - Rémy Issard - aliber4079 - - Jeroen - - Nathan Vonnahme - - SamanShafigh - - Paweł Farys - - Adil YASSINE ✌️ (sf2developer) - - E Ciotti - - kruglikov - - Dorian Sarnowski (dorian) - - Nitaco - - Nik G (iiirxs) - - Kevin Mark - - Ryan Castle (ryancastle) - - Romaxx - - Wanne Van Camp - - Lauri - - beram (beram) - - sofany - - FindAPattern - - wadjeroudi - - Alihasana SHAIKALAUDDEEN - - Lee Boynton - - Michael Witten (micwit) - - Tom Haskins-Vaughan - - Fabian Freiburg - - Woody Gilk (shadowhand) - - Matěj Humpál - - Dan Finnie - - Jonathan - - Gaurish Sharma - - Sam Hudson - - Raistlfiren - - Johan de Jager - - Pieter Oliver - - Geert Eltink - - Martin Melka - - Marcin Sekalski - - Jorick - - Benjamin Hubert (gouaille) - - Korstiaan de Ridder (korstiaan) - - René Backhaus - - d.syph.3r - - Markus Tacker - - Jordan Lev - - Bartek Nowotarski - - mimol91 - - Michel Chowanski (migo) - - Milan Pavkovic - - Noel - - Peter - - Javi H. Gil (javibilbo) - - progga - - larsborn - - Dincho Todorov - - timothymctim - - Tarjei Huse (symfony_cloud) - - Kenan Kahrić (kahric) - - Slava Fomin II (s-fomin) - - Abdelkader Bouadjadja (medinae) - - Danil Pyatnitsev (pyatnitsev) - - Pierre Bobiet - - Matthias Noback (mnoback) - - Viacheslav Demianov (sdem) - - AntoJ (merguezzz) - - Christopher Hoult (choult) - - Edson Medina - - Jeroen - - jeanhadrien - - Rubén Rubio Barrera (rubenrubiob) - - fb-erik - - fberthereau - - Marcin Sękalski (senkal) - - Aikaterine Tsiboukas - - Sebastian Blum (sebiblum) - - Enzo Santamaria - - Robert Freigang (robertfausk) - - r-ant-2468 - - Godfrey Laswai - - Urs Kobald (scopeli) - - Yassine Hadj messaoud - - Ricardo Rentería - - Talita Kocjan Zager (paxyknox) - - John Doe - - Marius Büscher (mbuescher) - - Raphael Michel - - Matt Janssen - - A S M Sadiqul Islam (sadiq) - - Tomasz Ducin (tkoomzaaskz) - - Jérémy BLONDEAU (jblondeau2) - - piet - - Nicolae Astefanoaie (stelu26) - - snroki - - Lorenzo Ruozzi (lruozzi9) - - Abdelilah Boudi (devsf3) - - Lukáš Brzák (rapemer) - - Vadim Bondarenko - - Iqbal Malik (iqbal_malik89) - - James Cryer (jrcryer) - - anton - - Dan Zera - - Willem-Jan Zijderveld (wjzijderveld) - - Sebastian G. (bestog) - - Leonardo Losoviz (leoloso) - - Antonio de la Vega - - Thomas from api.video - - Prathap - - belghiti idriss (belghiti) - - Jose F. Calcerrada (jfcalcerrada) - - Rudy Onfroy - - Daniele Ambrosino + - Jon Eastman + - Jonas Wouters + - mark2016 + - Raphaël Geffroy + - Lucas Mlsna + - armin-github + - Thomas Berends + - IamBeginnerC + - atmosf3ar + - Diego Gullo (bizmate) + - yositani2002 + - Tim Jabs + - Tim Krase + - RickieL + - Yoann B (yoann) + - Alessio Barnini + - KalleV + - pcky + - Ilya Bakhlin + - Csaba Maulis (senki) + - Dincho Todorov + - Théo FIDRY + - Mostefa Medjahed (mostefa) + - Taiwo A (tiwiex) + - Grzegorz Dembowski (gdembowski) + - Jean Pasdeloup + - Nicolas Rigaud + - Eduardo Thomas Perez del Postigo (aruku) + - Edgar Brunet + - Bram van Leur (bvleur) + - Dennis Benkert + - Mickael GOETZ + - phoefnagel + - rogamoore + - Kamil Breguła + - Jan G. (jan) + - Adam + - Grant Gaudet + - Jamal Youssefi + - Jules Lamur + - Anton + - Ozan Akman + - Christophe Debruel (krike06) + - Denis-Florin Rendler + - Fabian Freiburg + - twisted1919 + - rayrigam + - Christoph Schmidt + - Niklas + - Jan + - bpiepiora + - Andrei Karpilin (karpilin) + - Nuno Pereira (nunopereira) - Postal (postal) - - Zahir Saad Bouzid - - Joel Doyle (oylex) - - Romain Card - - JT Smith - - Jérémy Halin - - kolossa - - denniskoenigComparon - - Michal Zuber - - Serge Velikanov + - hanneskaeufler + - Daniel Kozák + - Martijn Gastkemper (martijngastkemper) + - Ross Cousens + - Lucas CHERIFI (kasifi) + - Ivan Yivoff + - Christian Oellers + - Catalin Minovici (catalin_minovici) + - Slava Fomin II (s-fomin) + - Jürgen + - skipton-io + - micter59 + - Cyril Lussiana + - GNi33 + - Łukasz Korczewski + - vgmaarten + - Kacper Gunia + - Kendrick + - Krzysztof Nizioł + - Rutger + - Karin van den Berg + - kohkimakimoto + - Arend Hummeling (arend) + - sofany + - FindAPattern + - Simon Van Accoleyen (simonvanacco) + - Alexander O'Neill + - Alexandr Kalenyuk + - apiotrowski + - Foksler (foksler) + - MarcomTeam + - Ross Deane (rossdeane) + - Robert + - Alistair (phiali) + - Maximilian Ruta + - Tom Schuermans (tschuermans) + - mccullagh + - yoye + - Christopher Hoult (choult) + - Gilles Taupenas + - Michał Szczech (miisieq) + - Liang Jin Chao (leunggamciu) + - Sébastien FUCHS + - Damian Zabawa (dz) + - Malte Blättermann + - Felix Stein + - ioanok + - Thomas P + - Andrius Ulinskas (andriusulins) + - Daniel Siepmann + - Geert Clerx + - Claude Ramseyer (phenix789) + - Ziad Jammal (ziadjammal) + - Egor Ushakov (erop) + - Brandon Mueller (fatmuemoo) + - Ayyoub BOUMYA (aybbou) + - Marc Straube + - Rick Burgess + - marco-pm + - Sven Luijten + - Behram ÇELEN (behram) + - Jason Johnstone + - Shevelev Vladimir (shevelev_vladimir) + - Ahmed Bouras + - Nick Winfield + - Nicolas Clavaud (nclavaud) + - Nathan Vonnahme + - ismail BASKIN + - Matthieu Danet (matthieu-tmk) + - Euge Starr + - Daniel (voodooprograms) + - Alex Savkov + - Charles Winebrinner + - Elias Van Ootegem + - Daan van Renterghem + - Walter Nuñez + - renepupil + - Nicolas Mugnier + - Thibaut Selingue + - Amitay Horwitz (amitayh) + - Harald Leithner + - rahul (rahul) + - Jacob Mather (jmather) + - hector prats (jovendigital) + - Szilágyi Károly Bálint + - Florian Blond (fblond) + - Michaël Mordefroy + - javaDeveloperKid - Aleksander Cyrkulewski (martyshka) - - Ante Crnogorac - - Brendan Lawton - - tobiasoort + - Alex Oroshchuk + - Igor + - Rafa Couto + - Ronan Pozzi (treenity) + - OrangeVinz (orangevinz) + - Malte N (hice3000) + - Nico Th. Stolz (jeireff) + - Florentin Garnier + - Benoît WERY (benoitwery) + - tabbi89 + - Jan Schütze (dracoblue) + - Marchegay (xaviermarcheay) + - Alexander Vorobiev (avorobiev) - Mickaël Blondeau (mickael-blondeau) - - Alex Theobold - - Sergey Belyshkin - - Ludovic REUS - - Surfoo (surfoo) - - Laurens Laman (laulaman) - - Hamza Makraz - - Arvydas K - - Pierre Joye (pierre) - - Bastien70 - - Wojciech Sznapka - - Arnaud Lejosne - - Olivier Revollat (o_revollat) - - Javad Adib - - zeggel - - Bartosz Tomczak - - mbehboodian - - Fayez Naccache (fnash) - - Marcin Muszynski - - Jeremy Emery - - Marichez Pierre (chtipepere) - - Christian Oellers - - tamir van-spier (tamirvs) - - Kevin Archer (kevarch) - - Philippe Gamache (philippegamache) - - Christopher Tatro - - Peter Gasser - - PéCé - - Camille Jouan (ca-jou) - - Parthasarathi GK - - chapterjason - - Daniel Garzon (arko) - - KalleV - - Tommy Quissens (quisse) - - pfleu - - Martijn Gastkemper (martijngastkemper) - - Matt Trask (matthewtrask) - - Alessio Barnini - - Ali Zahedi (aliz9271) - - Levi Durfee - - nietonfir - - Francesco Abeni - - Hans Stevens (hansstevens) - - Tomi Saarinen (tomis) - - Sethunath K (sethunath) - - guesmiii - - Cristi Contiu (cristi-contiu) - - Andrii Sukhoi - - Volen Davidov - - Victor DITTIERE (fuzip) - - xuni - - Charles Pourcel (ch.pourcel) - - xamgreen - - Frederik Schubert - - BETARI Amine (amine_ezpublish) - - Filip Telążka - - Cyanat - - Philip Ardery - - Egidijus Gircys - - Fabrice GARES (fabrice_g) - - Roberto Lombi - - Vincent Amstoutz - - Leanna Pelham - - phiamo - - Edward Kim - - Hari K T (harikt) - - Conrad Pankoff - - Tobias Olry (tolry) - - Chris Taylor - - Gus - - Gytis Šk - - David Negreira Rios (davidn) - - antoinediligent - - Rick van Laarhoven (rvanlaarhoven) - - Michael Y Kopinsky (mkopinsky) - - AdrianBorodziuk - - Christopher Cardea - - Ilya Antipenko - - unknown - - Jonathan Cox - - Petru Szemereczki (hktr92) - - Lucas Courot (lucascourot) - - Yosip Curiel (snake77se) + - Julien Deniau (jdeniau) + - Quentin ADADAIN + - sgautier + - sr972 + - Mateusz Anders + - anton + - Kane Menicou (kane-menicou) + - Romain Norberg + - Stephan Savoundararadj (lkolndeep) + - Jérémy LEHERPEUR (amenophis) + - Maxime Cornet (elysion) + - Daniel Felix (danielfellix) + - CJDennis + - Jorisros (jorisros) + - Yaroslav Yaremenko + - alexsaalberg049 + - adreeun + - Pierre MORADEI + - Gabriel Albuquerque + - Thomas Le Duc (viper) - Michał Kurcewicz (mkurc1) - - Benjamin Dos Santos - - pgorod + - Arthur Hazebroucq + - Robert Parker (yamiko) + - AlexKa + - Shane Archer (sarcher) - harcod - - Benjamin Sureau - - Florian Rusch - - Bartek Chmura - - Szymon Dudziak - - Olena Kirichok - - Bogdan Olteanu - - Romain - - Duane Gran (duanegran) - - Tim Jabs - - Julien RAVIA - - abarke - - Alessio Pierobon (alepsys) - - SquareInnov - - Marco Woehr - - Sacha Durand (sacha_durand) - - Oleg Zinchenko - - Anthony Sterling (anthonysterling) - - Ian Mustafa - - Mohamed Ettaki TALBI (takman) - - Bill Israel - - Gasmi Mohamed (mohamed_gasmi) - - Fabian Becker - - Adam Prancz (praad) - - Joan Teixido (joanteixi) - - Manuel Agustín Ordóñez (manuel_agustin) - - Michael Klein (monbro) - - Clément - - Kevin - - Giancarlos Salas (giansalex) - - Maxim Spivakovksy (lazyants) - - Mathieu Capdeville - - WILLEMS Laurent (willemsl) - - Dirk Luijk (dirkluijk) - - Adam Lee Conlin (hades200082) - - Mickael GOETZ + - Andreas + - Julien (mewt) - Tom Egan - - Patrick PawseyVale - - Carlton Dickson (carltondickson) - - Nieck Moorman - - Yannick - - scriptibus - - Gaetan Rouseyrol - - Kanat Gailimov - - Marius Balčytis - - norfil - - ArlingtonHouse - - karzz - - VelvetMirror - - Lambert Beekhuis (lambertb) - - Matijn Woudt - - CJDennis - - pavemaksim - - aykin - - Rafael Torres - - Katharina Störmer - - Marie CHARLES (mariecharles) - - Pierre Arnissolle (arnissolle) - - Saad Tazi (saadtazi) - - Kirill Baranov (u_mulder) - - Kristian Zondervan (krizon) - - David ALLIX (weba2lix) - - Kamil Kuzminski (qzminski) - - Happy (ha99ys) - - Pierre Maraître (balamung) - - Raphaël Riehl - - Jan Pieper - - laurent negre - - Alexey Bakulin (bakulinav) - - Kélian Bousquet - - apiotrowski - - Arne - - nicofrand - - Daniel Parejo Muñoz (xdaizu) - - fernandokarpinski - - Dmitriy - - Clément MICHELET (chiendelune) - - Lucian Tugui (luciantugui) - - Baptiste Pizzighini (bpizzi) - - gitomato - - yanickj - - Jules Lamur - - Daichi Kamemoto (yudoufu) - - Matthias Gutjahr (mattsches) - - Paweł Czyżewski - - Alexis Lefebvre - - mojzis - - A goazil - - Artur Weigandt - - Corentin - - Jeroen Deviaene - - Joppe de Cuyper - - fdarre - - Navid Salehi (nvdsalehi) - - Adam W (axzx) - - Open Orchestra (open-orchestra) - - Cesare - - Ian Gilfillan - - Chad Meyers (nobodyfamous) + - Andreas Schönefeldt + - Chris Halbert + - Leonard Simonse + - Tobias Hermann + - Adoni Pavlakis + - Bert Van de Casteele + - JohnyProkie (john_prokie) + - BorodinDemid + - Jeremiah Dodds + - Mario Alberto - Guillaume Ponty - - Works Chan - - Jacek Jędrzejewski - - Adam Szaraniec (mimol) + - Hossein Vakili + - shkkmo + - Robin Weller + - htmlshaman1 + - Ellis Benjamin + - JT Smith + - Nassim LOUNADI + - Szymon Skowroński (skowi) + - Johnny Peck + - Max R (maxr) + - David + - Bryan J. Agee + - Nitaco + - Poulette Christophe (totof6942) + - Jan Dorsman + - Viktor Linkin (adrenalinkin) + - Jeroen + - Rylix + - Marwâne (beamop) + - Alexpts (alexpts) + - Jan Christoph Beyer - Nehal Gajjar - - Olivier Bacs (obax) - - Jérémy Jarrié (gagnar) - - Sven (svdv22) - - Dorthe Luebbert (luebbert42) - - KosticDusan4D - - Fabian Spillner (fspillner) - - Dmytro Bazavluk - - Brandon Mueller (fatmuemoo) - - jordanjix - - Mark Smith (zfce) - - Alexandr Kalenyuk - - Patrick Bielen + - VosKoen + - juliendidier + - Syedi Hasan + - Guillaume PARIS (gparis) + - alexchuin + - Marek Szymeczko + - Tristan Darricau + - mbehboodian - JakeFr - - Arnaud Lemercier - - Punt - - Benoît - - Morf - - Robin Cawser (robcaw) - - grelu - - Jason Bouffard (jpb0104) - - Chase Noel (chasen) - - Belgacem TLILI (belgacem) - - Markus Frühauf - - Pau Oliveras (poliveras) - - Pierre-Emmanuel CAPEL (pecapel) - - Eduardo Gulias Davis - - Justin Liiper (liiper) - - Nicolas Hart (nclshart) - - Υоаnn B - - mervinmcdougall - - Simon Appelt - - Denis (ruff3d) - - Marvin Butkereit - - Žilvinas Kuusas (kuusas) - - Oliver Davies (opdavies) - - Christophe Deliens (cdeliens) - - Agustín Pacheco Di Santi - - Alexis Urien (axi35) - - MaharishiCanada - - Leonel Machava - - Giuseppe Petraroli - - IamBeginnerC - - Ivan Yivoff - - Felix Stein - - Lluis Toyos (tolbier) - - Nicolas Dievart (youri) - - Andras Ratz (ghostika) - - Edym Komlan BEDY (youngmustes) - - Florian Cellier (kark) - - Kévin LE LOUËR - - Nicolas GIRAUD (niconoe) - - Claudio Galdiolo - - Sven Zissner (svenzissner) - - Marius Adam - - Nextpage + - Wouter + - Loïc Sapone (loic_sapone) + - manseuk + - Toni Peric + - Raúl Continente (raulconti) + - xelan - Ludwig Bayerl (lbayerl) - - Kristof (jockri) - - Steve Clay (mrclay) - - Christopher - - Maciej Łebkowski (mlebkowski) - - Rhodri Pugh - - Mitchel (mitch) + - Lance Bailey + - Aurélien MARTIN + - Andrey Tkachenko + - Sylvain Ferlac + - João Paulo Vieira da Silva + - Hamza Hanafi + - Giacomo Moscardini + - Metfan (metfan) + - Nieck Moorman + - unknown + - Milan (milan) + - Lander Vanderstraeten + - David ALLIX (weba2lix) + - Dominik Pietrzak + - zulkris + - Jean-Baptiste Delhommeau (jbdelhommeau) + - Patrick Maynard + - Gabriel Théron (g.theron) + - Sander Bol + - MohamedElKadaoui + - Prakash Thapa (thapame) + - Phil Wright- Christie (philwc) + - Wojciech Międzybrodzki (wojciechem) + - Joe Thielen + - lacatoire + - niebaron + - Carlton Dickson (carltondickson) + - Marichez Pierre (chtipepere) + - Adam Prancz (praad) + - Rosemary Orchard + - ipf + - Terje Bråten + - Jevgenijus Andrijankinas + - Sylvain + - Daniel Ancuta (whisller) + - Kévin LE LOUËR + - Alan Farquharson + - Thierry Thuon + - Titouan B + - Oliver THEBAULT + - Thierry Goettelmann + - Ian Gilfillan + - Rudy Onfroy + - Cesare + - Benoit Jouhaud (bjouhaud) + - Andries van den Berg (ansien12) + - Simone Gentili (sensorario) + - marcusesa - Dan Michael O. Heggø (danmichaelo) - - ismail BASKIN - Matthew Thomas - - rs + - Tobias Schmidt (tobias-schmidt) + - Rami Dridi + - Benoît Durand (bdurand) + - Piotr Gołębiewski (loostro) + - Maxim Spivakovksy (lazyants) + - Korstiaan de Ridder (korstiaan) + - Dukagjin Surdulli + - Ben Glassman (benglass) + - Toni Conca (tonic) + - Alex Wybraniec + - Erwann MEST (_kud) + - Avindra Goolcharan + - Alexandre Bertrand + - Grégory SURACI + - Daniel West (silverbackdan) + - Sylvester Saracevas (saracevas) + - Peyman Mohamadpour + - RisingSunLight + - Benjamin Hubert (gouaille) + - Joshua Dickerson (groundup) + - Julien BENOIT + - analogic + - asandjivy + - Pedro Nofuentes (pedronofuentes) + - Alexandru Furculita ♻ + - Ahmed Lebbada (sidux) + - Claudio Galdiolo + - Timotheus Israel (dieisraels) + - Tomas Nemeikšis (niumis) + - dellamowica + - Oussama GHAIEB (oussama_tn) - TavoNiievez - - Ionut Enache - - Alexandre Mallet (woprrr) - - github-actions[bot] - - Neal Brooks (nealio82) - - venu (venu) - - Guillaume Sarramegna - - healdropper - - Aymeric Mayeux (aymdev) - - Kamil Pešek (kamil_pesek) - - Fabien Lasserre (fbnlsr) - - xthiago (xthiago) - - Kacper Gunia - - Sam Van der Borght (samvdb) - - Arnaud - - Florian Bastien (fbastien) - - Michael COULLERET (20uf) - - Oliver Forral (intrepion) - - Michael H - - Rémi T'JAMPENS (tjamps) - - Yann Klis - - IlhamiD - - Pierre Maraitre + - Crushnaut + - sblaut + - Marc Verney + - Francisco Corrales Morales + - Vladimir Jimenez + - Lucas Nothnagel (scriptibus) + - Danny Witting + - Adrien + - Dawid Królak (taavit) + - Cyanat + - Elliot + - Philippe Milot + - Edoardo Rivello (erivello) + - Ahmed Siouani (ahsio) + - Stéphane HULARD (shulard) + - nasaralla + - Jean-Luc MATHIEU (jls2933) + - Romain Petit + - Daniel Platt (hackzilla) + - Mark Fischer, Jr + - Cyril Krylatov + - burki94 + - Colin DeCarlo (colindecarlo) + - Davi Tavares Alexandre (davialexandre) + - Roger Llopart Pla (lumbendil) + - Clément Barbaza + - Tymoteusz Motylewski + - beachespecially + - Bob D'Ercole + - ondra + - Clément + - Damien Chedan (tcheud) + - Rico Neitzel + - Mathias Geat (maffibk) + - Kik Minev (kikminev) + - Epari Siva Kumar + - Koen van Wijnen (infotracer) - Daniele D'Angeli (erlangb) - - Tobias Berge - - asartalo - - rahul (rahul) - - Patrick Mota (ganon4) - - Tim Hovius (timhovius) - - Richard Perez (richardpq) - - Jérôme Nadaud - - Carl Schwan - - Hugo Casabella (casahugo) - - Christophe Meneses - - Michael Petri (michaelpetri) - - Gonzalo Alonso (gonzakpo) - - yositani2002 - - Xbird - - Emil Santi (emilius) - - Mynyx - - Mehdi Tazi (mehditazi9) - - Jesús Miguel Benito Calzada (beni0888) - - Kevin Papst - - Niels Vermaut (nielsvermaut) - - AntoineRoue - - Robin Gloster - Josh Freeman (viion) - - mocrates - - Boris Sondagh (botris) - - Thibault Miscoria (tmiscoria) - - Marcel Korpel - - KaroDidi - - antonioortegajr - - Olivier Toussaint (cinquante) - - Piotr Grabski-Gradziński (piotrgradzinski) - - Marek Brieger (polmabri) - - James (acidjames) - - MarvinBlstrli - - Maksym Hubar (nrgone) - - LucileDT - - Raúl Continente (raulconti) - - GoT - - Thomas Ploch - - Kevin Wojniak - - Favian Ioel Poputa (favianioel) - - Gabriel Théron (g.theron) - - Simon Perdrisat (gagarine) - - Hugo Clergue - - Zombaya - - Adoni Pavlakis - - Josh Kalderimis - - Linas Merkevicius - - Marcel Serra Julià (serrajm) - azielinski - - Pinchon Karim - - Carlos Granados - - James Mallison - - BT643 - - Severin J - - Sebastián Poliak (sebastianlpdb) - - Tom Schuermans (tschuermans) - - Alex-D (alexd) - - Arndt H. Ziegler - - Andrey Bolonin - - Andries van den Berg (ansien12) - - ondra - - Jason Aller (jraller) - - Pierre-Yves Dick (pyrrah) - - Zenobius - - Unai Roldán (unairoldan) - - Luca Suriano (lucas05) - - Benoit Jouhaud (bjouhaud) - - rschillinger - - Russell Flynn (rooster) - - avanwieringen - - Jonczyk - - Danny Kopping (dannykopping) - - Alexandr Podgorbunschih (apodgorbunschih) - - R1n0x - - Florian Körner (koernerws) - - Kevin Robatel (kevinrob) - - manseuk - - Janosch Oltmanns (janosch_oltmanns) - - Jan Myszkier - - Henrik Christensen - - Rob - - Amitay Horwitz (amitayh) - - micter59 - - GNi33 - - Christoph Grabenstein - - Malte Blättermann - - Florian Belhomme - - Oliver THEBAULT - - roga - - Franklin LIA - - Linas Linartas (linas_linartas) - - tuanalumi - - Timo Haberkern (thaberkern) - - Marcus Schwarz - - Christian Weyand (weyandch) - - Bastien Picharles (kleinast) - - Daniel Santana - - Kendrick - - Asma Drissi (adrissi) - - Nick Winfield - - Tim Krase - - Patrick Maynard - - Arnaud Pflieger - - Milan (milan) - - Metfan (metfan) - - Sylvain Ferlac - - Kamil Breguła - - Daniel Siepmann - - Reinier Butôt - Laurent Marquet - - Vladimir Jimenez - - Iker Ibarguren - - ptrm04 - - Nuno Pereira (nunopereira) - - Pavel Bezdverniy - - Taiwo A (tiwiex) - - Luka Žitnik - - Dries Vints - - Kilian Schrenk - - Jorge Sepulveda + - Andrey Bolonin - Valantis Koutsoumpos - - Kane Menicou (kane-menicou) - - Gianluca Farinelli (rshelter) - - Jan Christoph Beyer - - sgautier - - sr972 - - Tyler King - - Ahmed Lebbada (sidux) - - Dimitri Labouesse - - Andrea Cristaudo - - Xavier - - S Berder - - iarro - - Arnaud VEBER (veberarnaud) - - valepu - - Hex Titan (hextitan) - - Andrei Karpilin (karpilin) - - aziz benmallouk (aziz403) - - fguimier - - François MARTIN - - Jeremiah Dodds - - Vincent Brouté - - Charcosset Johnny - - Dmitriy Fishman (fishmandev) + - Evgeniy Guseletov (dark) + - Mathias STRASSER + - Michel Valdrighi (michelv) + - Jean-David Daviet + - Anani Ananiev + - Leny BERNARD + - Jason Grimes + - Julius (julius1) + - Andrea Bergamasco (vjandrea) + - Daniël Brekelmans + - Maik Penz + - Michel Chowanski (migo) - Alessandro Podo - - Stefan Doorn (stefandoorn) - - Miguel Vilata (adder) - - Mrtn Schndlr + - Emir Beganović (emirb) + - Pascal de Vink (pascaldevink) + - Daniel Kucharski (inspiran) + - David Paz (davidmpaz) + - Paul Rijke (parijke) + - jpache + - Marcus Schwarz + - Mohameth + - Sven Petersen + - Paweł Skotnicki (pskt) + - Romain GRELET + - jmsche + - Thomas Miceli (tomus) + - Benjamin Dos Santos + - Elbert van de Put + - cirrosol + - Constantin Ross + - Cellophile + - Richard Perez (riperez) + - CvekCoding + - Arnaud B (krevindiou) + - Pierre Trollé + - Patrick Mota (ganon4) + - Darmen Amanbayev + - Marvin Hinz + - norbert-n + - grelu + - Robert + - Robert Koller (robob4him) + - Christophe Meneses + - Sylvain Combes (sylvaincombes) + - Florent + - Bartosz Tomczak + - Robert Went (robwent) + - Arthur Hazebroucq + - Chad Meyers (nobodyfamous) + - Jay Williams (jaywilliams) + - Dennis de Best (monsteroreo) + - Damien + - b0nd0 + - t.le-gacque - YummYume - - Pedro Nofuentes (pedronofuentes) - - Ross Cousens - - Arnaud Thibaudet (kojiro) - - Damien Fayet - - Martin Černý - - de l'Hamaide - - Tony Tran (tony-tran) - - Fabien (fabiencambournac) - - Michael Staatz - - Alex Salguero - - rogamoore - - Arend Hummeling (arend) + - TrueGit + - Loïc Caillieux (loic.caillieux) + - Sakulbl + - Jan Grubenbecher + - entering + - abarke + - Daniel Jahnsmüller (tastaturberuf) + - Son Tung PHAM + - Pavel Máca + - Marek Brieger (polmabri) + - Jesús Miguel Benito Calzada (beni0888) + - Jérémy Jumeau (jeremyjumeau) + - Antonio Jesús + - Christian Alexander Wolf + - pecapel + - Jan De Coster + - Григорий + - Simon BLUM (simonblum) + - Alexander Dubovskoy + - Clorr + - VladZernov + - DanielEScherzer + - norfil + - Linas Merkevicius + - Michal Landsman + - Vadym (rvadym) + - Paulius Podolskis (wsuff) + - Vimal Gorasiya + - Jordan Aubert (jordanaubert) + - Michaël Demeyer + - Thomas Lomas (tomlomas) + - Qiangjun Ran (jungle) + - Tim Stamp + - Juan Manuel Fernandez (juanmf) + - Leevi Graham + - Epskampie + - ahmetkun + - Stephan Dee + - kevin + - michael kimsal (kimsal) + - Patrick Bußmann + - Jonathan + - Pedro Piedade + - Андрей + - Patrick McAndrew (patrick) + - Bogdan Olteanu + - xuni + - Victor DITTIERE (fuzip) + - KULDIP PIPALIYA (kuldipem) + - Philippe Mine (dispositif) + - Jeroen v.d. Gulik (jeroen) + - aykin + - Steven DUBOIS (stevenn) + - Hubert Moutot (youbs) + - decima + - Terje Bråten + - Mynyx + - Andrii Sukhoi + - matteopoile + - Léo + - Hex Titan (hextitan) + - Anthony Sterling (anthonysterling) + - Mohamed Ettaki TALBI (takman) + - Kevin + - John Doe + - IlhamiD - Fabien Bourigault - - Claude Ramseyer (phenix789) - - Benoît Durand (bdurand) - - Sander Verkuil (sander-verkuil) - - Guillaume Sylvestre (gsylvestre) - - Florentin Garnier - - Sasha Matejic (smatejic) - - Nico Th. Stolz (jeireff) - - Pedro Junior (vjnrv) - - Grégory SURACI - - Faizan Shaikh - - fullbl - - Rick Ogden - - Jonas Wouters - - Bryan J. Agee - - Lucas Mlsna - - Harry van der Valk - - cvdwel - - bpiepiora - - Yair Silbermintz (mrglass) - - Crushnaut - - Damien Tournoud - - Daniel Ancuta (whisller) - - Mindaugas Liubinas (meandog) - - Julio (gugli100) - - ackerman - - EL MAIS EL Mehdi (2m-ays) - - Stéphane P - - temenb - - Kris - - Chris Johnson - - Carwyn Moore - - Kobe Vervoort (kobevervoort) - - Elias Van Ootegem + - Peter Majmesku + - Rodrigo Capilé (rcapile) + - Exalyon + - Muhammad Nasir Rahimi + - scriptibus + - Robin Gloster + - Stefan Doorn (stefandoorn) + - vesselind + - Mohd Shakir Zakaria (mohdshakir) + - Catalin Criste (catalin) + - Herbert Muehlburger + - Talita Kocjan Zager (paxyknox) + - Christopher Moll + - Hugo Casabella (casahugo) + - Stanislav Zakharov (strannik) + - Carl Schwan + - Cadot.eu & Co. + - Surfoo (surfoo) + - Alexandre HUON + - Mark Brennand (activeingredient) + - Kirill Baranov (u_mulder) + - Kélian Bousquet + - Ldiro + - radnan + - Nik Spijkerman + - Duane Gran (duanegran) + - Jalen + - Brooks Van Buren (brooksvb) + - Guillaume MOREL + - j00seph + - kallard1 + - Alexey Bakulin (bakulinav) + - Slava Belokurski (slavchoo) + - Jerome Guilbot (papy_danone) + - Josenilton Junior (zavarock) + - Edwin + - Max Schindler (chucky2305) - Konrad pap (konrados) - - Jacob Dreesen - - Sven Scholz - - DOEO - - Baptiste Langlade - - Nico Schoenmaker - - Julien Dephix - - Björn Fromme (bjo3rn) - - Hugo Locurcio - - Vimal Gorasiya - - Jack Delin (jackdelin) - - Jean-Luc MATHIEU (jls2933) - - Ahmed Siouani (ahsio) - - Jibé (jibe0123) - - Wagner Nicolas (n1c01a5) - - Manuele Menozzi (mmenozzi) - - Mathieu DUMOUTIER (mathieu-dumoutier) - - Tony Cosentino - - Mark Challoner - - Shawn Dellysse - - Anand (anandagra) - - Andrew D Battye (andrew_battye) - - Stefan Blanke (stedekay) - - Denys Pasishnyi (dpcat237) - - Florian Moser - - Tristan LE GACQUE (tristanlegacque) + - figaw + - Alex Theobold + - Brendan Lawton + - Gyula Szabó (szabogyula) - Nico Hiort af Ornäs - - Alexandre HUON - - Christopher Moll - - Herbert Muehlburger - - Gabriel Birke (chiborg) - - Mbechezi Mlanawo - - TheSidSpears - - Jose R. Prieto - - Rodrigo Rigotti Mammano (rodrigorigotti) - - Diego Gullo (bizmate) - - unknown - - Émile PRÉVOT - - Michaël Dieudonné - - Francis Hilaire - - Atchia Mohammad Annas Yacoob (annas-atchia) - - Alex Brims (outspaced) - - atmosf3ar - - sebgarwood-gl - - Robert Treacy (robwasripped) - - Kevin Wojniak - - Thao Nguyen (thaowitkam) - - Aurélien ADAM (aadam) - - Łukasz Korczewski - - Sorin Dumitrescu (sfdumi) - - Julien Deniau (jdeniau) - - Mbechezi Mlanawo - - Zaid Rashwani (zrashwani) - - Francesco Tassi (ftassi) - - Valyaev Ilya (rumours86) - - KULDIP PIPALIYA (kuldipem) + - Murilo Lobato (murilolobato) + - kempha + - David Frerich + - Robert Podwika + - Kiel Goodman + - Souhail (souhail_5) + - Fabian Becker + - Valentin GRAGLIA + - Ben Glassman (bglassman) + - Felix Schnabel + - Rick West + - Théophile Helleboid - chtitux + - gitomato + - Tim Kuijsten + - LavaSlider + - guiditoito + - Yoan Arnaudov (nacholibre) + - Ahmed Abdou (ahmedaraby) + - Gaetan Rouseyrol + - Martin Černý + - Dennis Bijsterveld (bijsterdee) + - Michael Petri (michaelpetri) + - Tyler Sommer (veonik) + - Robin + - jean-marie leroux (jmleroux) + - Jérémy Jarrié (gagnar) + - Volodymyr Stelmakh + - Vladimir Schmidt (morgen) + - Dan Barrett (yesdevnull) + - wouthoekstra + - Tim Jabs + - antonioortegajr + - EL MAIS EL Mehdi (2m-ays) + - Krzysztof Ilnicki (poh) + - timothymctim + - Olivier Bacs (obax) + - Artur Butov (vuras) + - Michael Phillips + - Shawn Dellysse + - Darien + - Jake Bell + - Nicolas Lœuillet (nicosomb) + - babache + - Rubén Rubio Barrera (rubenrubiob) + - Works Chan + - Florent DESPIERRES (fdespierres) + - CaDJoU + - Dylan Delobel (dylandelobel) + - Russell Flynn (rooster) + - Tomasz Tybulewicz (tybulewicz) + - Alexis Lefebvre + - Paul Waring - Fabien Schurter - - Deepak Kumar - Etilawin - - Przemek Maszczynski - - Dustin Meiner - - Christiaan Baartse (christiaan) - - rklaver - - Nic Wortel (nicwortel) - - silver-dima - - Pavel Nemchenko (nemoipaha) - - sakul95 - - Stephan Savoundararadj (lkolndeep) - - Thomas Rudolph (holloway) - - kirill-oficerov + - Jonczyk + - Phil Moorhouse (lazymanc) + - Christian Schaefer (caefer) + - Frank J. Gómez + - e-weimann + - Mehdi Tazi (mehditazi9) + - Mart Kop - Unlikenesses - - Marcus Stöhr - - David Desberg - - Nik Spijkerman - - Thibaut Selingue - - Anthony FACHAUX - - LesRouxDominerontLeMonde - - Simon - - Tom Schwiha (tomschwiha) - - Joe - - imam harir (luxferoo) - - Richard Miller - - muxator - - Michael Cullum (unknownbliss) - - Christoph Wieseke - - Gary Kovar - - Saidou GUEYE - - Oliver Adria - - Glen Jaguin (gl3n) - - Marek Nocoń - - damien-louis + - Dorozhko Anton + - German Bortoli (germanaz0) + - mocrates + - Kane Menicou (kane_menicou) + - wadjeroudi + - Mohamed YOUNES (medunes) + - Joshua (suabahasa) + - Krap + - Hugo Seigle + - vmarquez + - beram (beram) + - Alireza Rahmani Khalili (alireza_rahmani) + - Zac Sturgess (zsturgess) + - Robert Freigang (robertfausk) + - Chris8934 + - Luca Lorenzini + - Bill Israel + - Uri Goldshtein + - Andrew Cherabaev + - Aaron Edmonds (aedmonds) + - Guillaume HARARI (guillaumeharari) + - dpfaffenbauer + - David Vigo + - fdarre + - Kevin Archer (kevarch) + - Danny Kopping (dannykopping) + - Julien Dephix + - Matt Kirwan + - Quentin Thiaucourt (quentint) + - Arnaud Salvucci (arnucci) + - Anthony Rey (sydney_o9) + - Hendrik Pilz (hendrikpilz) + - Eric Tucker + - Jérôme (ajie62) + - chapterjason + - Daniel Garzon (arko) + - Adam Duffield + - Piotr Strugacz + - Carlos Jimenez (saphyel) + - Thierry Geindre (tgeindre) + - Bartłomiej Zając (bzajac) + - Thomas Talbot + - Nik G (iiirxs) + - bouffard (shinmen33) + - David D. (comxd) + - Mikhail Kamarouski + - Sasha Matejic (smatejic) + - Pedro Junior (vjnrv) + - Sebastian Blum (sebiblum) + - Zbigniew Czapran (zczapran) + - Jarosław Jakubowski (egger1991) + - Max R + - Stephan + - Florimond Manca + - Timon F. (timon) + - Lopton + - Sebastián Poliak (sebastianlpdb) + - Ian Mustafa + - Benjamin Bourot + - Thomas LEZY + - Etshy + - Thomas Choquet (chqthomas3) + - Jacek (opcode) + - Norio Suzuki (suzuki) + - Manuel Agustín Ordóñez (manuel_agustin) + - BT643 + - Jorge Luis Betancourt (jorgelbg) + - Jonathan Cox + - Petru Szemereczki (hktr92) + - James Mallison + - Erison silva (eerison) + - Cyril Mouttet (placid2000) + - SamanShafigh + - Adam Szaraniec (mimol) + - Pierre Arnissolle (arnissolle) - rodmar35 - - mccullagh - - Mostefa Medjahed (mostefa) - - David Schmidt - - Tobias Sette - - Volker Thiel - - Jakub Szcześniak (jakubszczesniak) - - Mike Zukowsky - - Andreas Larssen - - seangallavan - - Daniel Jahnsmüller (tastaturberuf) - - Guillaume MOREL - - gnito-org - - matt smith (dr-matt-smith2) - - Bruno Vitorino - - Dominic Luechinger - - Greg Berger - - Maxim (big-shark) - - Michaël Perrin - - Romain Biard (rbiard) - - Tom Troyer - - Yannick ROGER (yannickroger) - - Zéfyx - - jenyak - - Jan Richter - - Robin Weller - - MarcomTeam - - Shevelev Vladimir (shevelev_vladimir) - - Marc Straube - - Lee Jorgensen (profmoriarty) - - Lucas Pussacq - - Dominik Pietrzak + - Vince (zhbzhb) + - avanwieringen + - Lukas W + - James Seconde (secondejk) + - romain + - DOEO + - Joe Hans Robles Martínez (joebuntu) + - Frank Stelzer (frastel) + - Bruno Baguette (tournesol) + - Sven (svdv22) + - Bill Surgenor + - Florian VANHECKE + - Dmitry Kolesnikov (kastaneda) + - Joel Clermont (jclermont) + - Epskampie + - Spomky + - CodyFortenberry + - Ben Thomas + - Chris Bitler + - Laurent Marquet + - Gun5m0k3 + - Hans Stevens (hansstevens) + - Dzamir + - Andréas Hanss + - Nazar Mammedov + - Miguel Vilata (adder) + - Levi Durfee + - Saidou GUEYE + - Javier Espinoza + - Casey Heagerty + - Artem Ostretsov + - Tristan Pouliquen (tristanpouliquen) + - Plamen + - Patrik Pacin + - dearaujoj + - George Pogosyan (gp) + - Kristijan Stipić (stipic) + - RiffFred + - Sam Van der Borght (samvdb) + - artf + - Michael Cullum (unknownbliss) + - Vincent Brouté + - Aikaterine Tsiboukas + - fishbone1 + - Jose Diaz + - Иван + - benti - Mohammad - - Simon Berton (simonberton11) - - Peter Bottenberg - - Jace25 + - lobodol (lobodol) + - NicolasPion + - Alexander Marinov + - Boris Sondagh (botris) + - Marcel Korpel + - xthiago (xthiago) + - obsirdian + - Jarvis Stubblefield (ballisticpain) + - Douglas Naphas + - Cliff Odijk (cmodijk) - Justas Bieliauskas - - Nelu Buga - - Chris8934 - - Dr. Balazs Zatik - - Thijs Feryn - - skipton-io - - Walkoss - - Ruslan - - Tsimafei Charniauski (varloc2000) - - copilot-swe-agent[bot] - - morrsky - - Brian Gallagher - - Yaroslav Kiliba - - Oliver Kossin + - Kilian Schrenk + - Yakov Lipkovich + - Ludwig Ruderstaller (rufinus) + - Markus Mauksch + - piet + - Robert Parker (yamiko_ninja) + - Michael Witten (micwit) + - Hugo Clergue + - Doug Smith (dcsmith) + - Marco Woehr + - Volker Thiel + - Pierre de Soos + - Jannes Drijkoningen (jannesd) + - Pierre Galvez (shafan_dev) + - Denis Rendler + - Luc Hidalgo (luchidalgo) + - Hugo Nicolas (jacquesdurand) + - Wolfgang Weintritt (wolwe) + - Kevin Robatel (kevinrob) + - Ahmed Raafat (luffy14) + - Hugo Locurcio + - Richard Lynskey + - Janosch Oltmanns (janosch_oltmanns) + - runephilosof-abtion + - Daniel Haaker (dhaaker) + - Piotr Grabski-Gradziński (piotrgradzinski) + - LEFLOCH Jean-François (katsenkatorz) + - Felipe Martins + - Inori + - Pinchon Karim + - András Debreczeni - Ignacio Aguirre - - Terje Bråten - - Jonathan Holvey - - Raggok - - Benjamin Bourot - - ahinkle - - Toni Peric - - Florian CAVASIN - - Michel Valdrighi (michelv) - - lusavuvu - - Chloé B. - - Quentin Boulard - - Carlos Jimenez (saphyel) - - Jochem Klaver - - Houssem ZITOUN - - radnan - - Cory Becker + - Jade Xau + - Oliver Kossin + - Giancarlos Salas (giansalex) + - matthieu88160 + - Zamir Memmedov (zamir10) + - Francois CONTE + - Thomas Kappel + - Jorick + - Thomas Botton (skeud) + - Marcin Sekalski - Prisacari Dmitrii - - Al Bunch - - jmangarret - - Andrey Lukin (wtorsi) - - Jean-David Daviet - - htmlshaman1 - - Pjotr Savitski - - Pol Romans (snamor) - - Louis Racicot (lord_stan) - - Oliver Stark (oliver.stark) - - iamdto (iamdto) - - clément larrieu - - Wouter J - - M.Eng. René Schwarz - - Marc Michot (eclae) - - peaceant - - Manoj Kumar - - Danny - - Erwan Richard (erichard) - - Szurovecz János - - Julian Mallett (jxmallett) - - VladZernov - - Alex Wybraniec - - Iulian Popa (iulyanp) - - AmalricBzh - - Massimo Ruggirello - - Daniel Kucharski (inspiran) - - guidokritz - - Christian Schaefer (caefer) - - Georgiana Gligor (gbtekkie) - - Vladislav Lezhnev (livsi) - - XitasoChris - - Steve Winter - - Bob D'Ercole - - jean-marie leroux (jmleroux) - - beachespecially - - Lucas CHERIFI (kasifi) - - Lucas Nothnagel (scriptibus) - - Erison silva (eerison) - - Gabriel Bugeaud - - t.le-gacque - - Joel Costa (joelrfcosta) - - Lance Bailey + - Tommi + - Walkoss + - Ionut Enache - Michael Sheakoski - - Luca Lorenzini - - Mohsen - - Marc Wustrack (muffe) - - Guillaume HARARI (guillaumeharari) - - Richard Hoar - - Mathias STRASSER - - Dmitry Vishin (wishmaster) - - Jasperator - - Andréas Hanss - - Vlad Ghita (vghita) - - Jure Žitnik - - adursun - - Zac Sturgess (zsturgess) - - Gergely Pap - - Med Ghaith Sellami - - srich387 - - jakumi - - Vico Dambeck - - Angelo Melonas (angelomelonas) - - Bart van Raaij (bartvanraaij) - - José María Sanchidrián (sanmar) - - Etshy - - michael schouman (metalmini) - - Jens Pliester - - Kwadz - - GiveMeAllYourCats - - Sander Bol - - Dan Abrey - - Daniel F. (ragtek) - - Aaron Valandra - - Eugene Dounar - - Rémy Vuong (rvuong) - - Mark Deanil Vicente (dvincent3) - - dearaujoj - - Marko Kaznovac - - Loïc Sapone (loic_sapone) - - Levin - - Romain Norberg + - ABOULHAJ Abdelhakim (hakim_aboulhaj) - Janko Diminic (jankod) - - Panda INC (pandalowry) - - Florian Blond (fblond) - - Willem Stuursma-Ruwen - - Titouan B + - tikoutare + - Iqbal Malik (iqbal_malik89) + - Abdelilah Boudi (devsf3) + - Daniel F. (ragtek) + - snroki + - Florian Bastien (fbastien) + - runawaycoin + - Chris Thompson (toot) + - Émile PRÉVOT + - Turdaliev Nursultan (nurolopher) - Илья - - lbraconnier2 - - E Demirtas - - Thierry Geindre (tgeindre) - - Micha Alt - - lobodol (lobodol) - - Daniel Klein - - Danny Witting - - Robert - - PululuK - - Richard Tuin (rtuin) - - Gabriel Albuquerque - - Nikita - - Bruno Casali - - z38 - - Eöras - - Katharina Floh (katharina-floh) - - Rutger - - Jose Diaz - - Pierre Pélisset (ppelisset) - - Gauthier Gilles - - Therage Kevin - - Paul Waring - - hanneskaeufler - - Zbigniew Czapran (zczapran) - - Kevin de Heer - - faissaloux - - Jason Grimes - - SirRFI - - Maximilian Ruta - - martin05 - - Ross Deane (rossdeane) - - ifiroth - - Hans Allis (hansallis) - - Clayton - - Daniel Kesselberg (kesselb) - - Sven Luijten - - João Paulo Vieira da Silva - - Quentin Thiaucourt (quentint) - - andrecadete - - armin-github - - Fatih Ergüven (erguven) - - M E (ttc) - - Pierre Spring - - Robert - - adreeun - - Mark (markchicobaby) - - Clemens Krack (ckrack) - - Jason McCallister (jasonmccallister) - - Salah MEHARGA - - Babar Al-Amin (babar) - - tabbi89 - - Travis Carden - - Rosemary Orchard - - marcagrio - - Alireza Rahmani Khalili (alireza_rahmani) - - German Bortoli (germanaz0) - - e-weimann - - LOUVEL Mathieu (louvelmathieu) - - Jonathan Huteau (jonht) - - Grzegorz Dembowski (gdembowski) - - Ricardo Peters (listerical) - - Ian Kevin Irlen (kevinirlen) - - Fabien Bourigault - - Micheal Cottingham (micheal) - - richardmiller - - Oliver Kossin - - Ben Huebscher (huebs) - - Victor Melnik (gremlin) - - Travis Yang (oopsfrogs) - - Tamás Molnár (moltam) - - Aalaap Ghag (aalaap) - - Jo Meuwis (jo_meuwis) - - Mark Fischer, Jr - - alexchuin - - wiese - - Roger Llopart Pla (lumbendil) - - Markus Virtanen - - Jonathan Finch - - Pooyan Khanjankhani - - Jannes Drijkoningen (jannesd) - - Pierre Joube (pierrejoube) + - Dr. Balazs Zatik + - Andrej Rypo + - Maximilien BERNARD (mb3rnard) + - Luke Kysow + - stormoPL + - Antoine Durieux (adurieux) + - Zoltan Toth-Czifra + - Hideki Okajima (okazy) + - Frédéric Planté + - Iker Ibarguren + - sander Haanstra (milosa) + - Jean-Marie Lamodière (jmlamo) + - Tobias Sette + - Konstantin Tjuterev (kostiklv) + - Maxim (big-shark) + - Matthew Setter (settermjd) + - Rob + - Harry van der Valk + - Mohammed Rhamnia (rmed19) + - MWJeff + - Gasmi Mohamed (mohamed_gasmi) + - Ala Eddine khefifi + - Luuk Scholten (lscholten) + - Steve Wasiura + - Vladimir Jimenez + - Paul Coudeville + - Cristiano Cattaneo (ccattaneo) + - kraksoft + - Pol Romans (snamor) + - Piotr Potrawiak + - Robin Brisa + - Raul C - Florian - - Cyril VERLOOP (cyrilverloop) - - Damien Chedan (tcheud) - - Yassine Fikri (yassinefikri) - - beejaz - - Leonard Simonse - - Pierre MORADEI - - Tom Grandy - - Marius-Liviu Balan (liv_romania) - - Walter Nuñez - - Ondrej Vana (kachnitel) - - Patrik Gmitter (patie) - - jdevinemt - - xelan - - Valentin Silvestre (vasilvestre) - - Savvas Alexandrou (savvasal) - - marco-pm - - Behram ÇELEN (behram) - - Alexey Rogachev - - Nicolas Clavaud (nclavaud) - - Piotr Gołębiewski (loostro) - - Damien DE SOUSA (dades) - - Nebojša Kamber - - Damian Zabawa (dz) - - Fabien Bourigault - - Roman Martinuk - - David McKay - - Dynèsh Hassanaly (dynesh) - - Sudhakar Krishnan - - Kris - - Frank Stelzer (frastel) - - alexmart - - Григорий - - Alexandre Castelain (calex_92) - - Tymoteusz Motylewski - - Michal Landsman - - renepupil - - Hector Hurtarte (hectorh30) - - Ejamine - - Alex Savkov + - Rick van Laarhoven (rvanlaarhoven) + - illusionOfParadise + - Manel Sellés (manelselles) + - fb-erik + - mojzis + - Peter Gasser + - Paweł Farys - cancelledbit - - Kevin R - - David Zuelke (dzuelke) - - Benjamin Lazarecki (benjaminlazarecki) - - Wil Moore (wilmoore) - - Mohammed Rhamnia (rmed19) - - benti - - Erik (erikroelofs) - - yoye - - samson daniel (samayo) - - Matthew Ratzke (flyboarder) - - Piotr Stankowski - - Michaël Perrin - - Dennis Benkert - - Tim Jabs - - Valter Carneiro da Silva Junior (valterjrdev) - - Krzysztof Lechowski (kshishkin) + - Ejamine + - Calin Pristavu (calinpristavu) + - Wouter J + - makmaoui + - Charly + - tobiasoort + - Charles EDOU NZE + - Maxime Nicole + - Tajh Leitso (tajh) + - Maxime Douailin + - Filip Grzonkowski (grzonu) + - Antonio de la Vega + - Sébastien Rogier (srogier) + - Yohann Durand (yohann-durand) + - Adrien LUCAS + - Shamsi Babakhanov + - Carlos Sánchez (carlossg00) + - Robert Brian Gottier + - Lyrkan + - Jay-Way + - lucbu + - timglabisch + - Favian Ioel Poputa (favianioel) + - Scott + - Rémy Vuong (rvuong) + - Marko Kaznovac + - Belgacem TLILI (belgacem) + - Ante Crnogorac + - Michelle Sanver (michellesanver) + - Tobias Berchtold + - manoakys + - GiveMeAllYourCats + - mervinmcdougall + - Denis (ruff3d) + - Leonel Machava + - Simon Berton (simonberton11) + - Kenan Kahrić (kahric) + - Jace25 + - iamdto (iamdto) + - Evan Owens - 6e0d0a - - Tim Kuijsten - - Pavel Jurecka - - Stanislav Zakharov (strannik) - - Muhammad Nasir Rahimi - - Paris mikael (stood) - - Alex Luneburg - - nasaralla - - jivot - - markspare - - pcky - - Luděk Uiberlay (ne0) - - Tim Herlaud - - Halil Özgür - - Sylvain Lelièvre - - Olivier Lechevalier - - Masaharu Suizu + - Erdal G + - Valentin GARET (vgaret) + - Shambhu Kumar (shambhu384) + - David + - Mathieu DUMOUTIER (mathieu-dumoutier) + - Mark (markchicobaby) + - Clemens Krack (ckrack) + - Denis Soriano (dsoriano) + - Emilio de la Torre (emiliodelatorrea) + - denniskoenigComparon + - Marc Michot (eclae) + - Filip Telążka + - Maxime Doutreluingne (maxdoutreluingne) + - Dorian Sarnowski (dorian) + - Jordan Bradford - Vitaliy Zurian - - Giulio De Donato - - PHAS Developer - - Mahdi Maghrooni - - Barun - - Jean-Philippe Dépigny - - Hideki Okajima (okazy) - - Mathieu - - Jan Grubenbecher - - Colin Poushay (poush) - - Vancoillie - - optior - - Michiel Missotten (zenklys) - - Cyril Krylatov - - Lars - - Jean Pasqualini - - Kerrial (kez) - - burki94 - - Kevin Warrington - - Thomas Decaux (ebuildy) - - Ayyoub BOUMYA (aybbou) - - Abdellah Ramadan (abdellahrk) - - Arthur Hazebroucq - - Darien Hager - - partulaj - - Rami Dridi - - Phil Wright- Christie (philwc) - - Catalin Criste (catalin) - - Daan van Renterghem - - Maximilian Bosch - - manu-sparheld - - jonasarts - - Patrik Csak - - Alexandru Furculita ♻ - - Ramzi Abdelaziz (ramzi_a) - - vindby23 - - Felipe Martins - - Peter - - Mario Alberto - - Luuk Scholten (lscholten) - - Loïc Salanon - - Evgeniy Guseletov (dark) - - ehibes - - BrnvrlUoeey - - Adiel Cristo - - Younes OUASSI (youassi) - - matteopoile - - Brendan - - Pierre-Jean Leger - - Daniel Felix (danielfellix) - - Nikolai Plath - - ameotoko - - Michał Wujas - - Daniel Kozák + - jmangarret + - Olivier Lechevalier + - d.syph.3r + - Gabriel Pillet (tentacode) + - Hocdoc + - Salah MEHARGA + - Guillermo Quinteros (guquinteros) + - Axel Barlet + - Adam W (axzx) + - Steve Winter + - Sander Verkuil (sander-verkuil) + - Maxime Douailin + - Rafael Torres + - broiniac + - Matijn Woudt + - E Ciotti + - Karel (xwb) + - Manuele Menozzi (mmenozzi) + - Iv Po + - jms85 - Denis Brumann - - Brandin Chiu - - Daniël Brekelmans - - Kieran Black - - ousmane NDIAYE (ousmane) - - sebio - - Jeroen Seegers - - fbuchlak - - Ivan Kosheliev (dfyz) - - Julien Gidel - - Marc Verney - - Giovanni Toraldo - - Nelson da Costa - - Hossein Vakili - - Jerome Gangneux - - Valentin Ferriere (choomz) - - Hamza Hanafi - - Zamir Memmedov (zamir10) - - Nikita Nyatin - - David Baucum - - Cosmin Mihai Sandu (cosminsandu) - - jsarracco - - Antonio Spinelli - - Harald Leithner - - Jacob Mather (jmather) - - Erwann MEST (_kud) - - Terence Eden - - Alexandre Gérault (alexandre-gerault) + - Navid Salehi (nvdsalehi) + - Sven Liefgen + - JHGitty + - Mario Martinez (chichibek) + - Javad Adib + - Rafael Mello (merorafael) + - Gaurish Sharma + - Sam Jarrett + - matheo + - Dirk Luijk (dirkluijk) + - Adam Lee Conlin (hades200082) + - Augustin Chateau (gus3000) + - Kobe Vervoort (kobevervoort) + - Kostya + - ampt . (ampt) + - Lamari Alaa + - Olivier Acmos (olivier_acmos) + - Francesco Tassi (ftassi) + - Romain + - Mbechezi Mlanawo + - Michael Klein (monbro) + - Guillaume Rossignol + - stehled + - Raggok + - Dimitar + - Giovanni Toraldo + - Nelson da Costa + - Christoph Wieseke + - Varun Agrawal (varunagw) + - richardmiller + - ayacoo + - Jonathan Holvey + - Attila Egyed (tsm) + - Lucas Pussacq + - Davor Plehati (dplehati) + - karzz + - Lucas Courot (lucascourot) + - Olivier Toussaint (cinquante) + - Jeroen + - Yannick ROGER (yannickroger) + - Daryl Gubler (dev88) + - Christophe Deliens (cdeliens) + - Υоаnn B + - Andrew Martynjuk (crayd) + - CHARBONNIER (cyrus) + - (H)eDoCode + - Ruben Petrosjan + - Jess + - Dmitry Vapelnik (dvapelnik) - Kevin - - Dawid Królak (taavit) - - Jordi Freixa Serrabassa + - Pjotr Savitski + - joelindix + - Cory Becker + - Clément Notin + - Ondřej Vodáček + - rklaver + - Brent Shaffer (bshaffer) + - tchap + - amelie le coz (amelielcz) + - ahinkle + - Marek Bartoš + - Andrew D Battye (andrew_battye) + - Stefan Blanke (stedekay) + - Oliver Kossin - Michael Sivolobov (astronomer) - - Marwâne (beamop) + - Edward Kim + - Al Bunch - Marc Neuhaus (mneuhaus) - - Fred Jiles (fredjiles) - - Marko Mijailovic - - royswale - - Artem Henvald - - Richard Perez (riperez) - - Shiraz (zpine) - - MohamedElKadaoui - - Cellophile - - Leny BERNARD - - Bruce Phillips - - Dmitry Vapelnik (dvapelnik) - - van truong PHAN (vantruongphan) - - iqfoundry - - Matt Kirwan - - hector prats (jovendigital) - - Thibault Gattolliat (crovitche) - - Alex Ghiban (drew7721) - - Nils Freigang (pueppiblue) - - James Isaac - - Pierre Galvez (shafan_dev) - - Rob Gagnon - - Cyril Lussiana - - Ronan Guilloux (ronan) - - Leevi Graham - - Eike Send - - Maxime Doutreluingne (maxdoutreluingne) - - Aurelijus Banelis (aurelijusb) - - Thomas LEZY - - Reza Rabbani - - Stefan hr Berder - - Szyszewski - - Maxime Nicole - - Szilágyi Károly Bálint - - Joshua Morse (joshuamorse) - - Maxime Douailin - - Daryl Gubler (dev88) - - helmi dridi - - fridde + - Markus Weiland (advancingu) + - Jérôme Poskin (moinax) + - John Ballinger + - Christophe Boucaut + - BETARI Amine (amine_ezpublish) + - Boris Shevchenko + - Sebastian Kuhlmann (zebba) + - autiquet axel + - Woody Gilk (shadowhand) + - Christiaan Baartse (christiaan) + - Goran Grbic (tpojka) + - ghertko + - Med Ghaith Sellami + - g@8vue.com - Simon Riedmeier (simonsolutions) - Игорь Дмитриевич Чунихин (6insanes) - - Elliot - - Vladimir Jimenez - - Xavier RIGAL - - Sebastian Bergmann - - Nathan Giesbrecht + - Konstantin (phrlog) + - Tom Schwiha (tomschwiha) + - Robin Delbaere (rdelbaere) + - KaroDidi + - Alihasana SHAIKALAUDDEEN + - Artur + - Maciej Łebkowski (mlebkowski) + - Alex Coventry + - Valentin Silvestre (vasilvestre) + - Jérôme Nadaud + - Daniel Santana + - Raphael Michel + - Menachem Korf + - Punt + - Jérémy CROMBEZ + - Andy Truong + - ismail mezrani (imezrani) + - mvanmeerbeck + - Tim + - Freerich Bäthge (freerich) + - Matěj Humpál + - Wil Moore (wilmoore) + - Marcin Sękalski (senkal) + - Thomas Rudolph (holloway) + - Alex-D (alexd) + - Jelmer Snoeck (jelmersnoeck) + - Saad Tazi (saadtazi) + - Pieter Oliver + - Sudhakar Krishnan + - Brendan + - Pierre-Jean Leger + - Nikolai Plath + - Łukasz Bownik (arkasian) + - Michaël Perrin + - Dominic Luechinger + - Sven Scholz + - bdujon + - Markus Tacker + - Jeroen Seegers + - bram vogelaar (attachmentgenie) + - Jordan Lev + - Julien RAVIA + - Agustín Pacheco Di Santi + - Francisco Javier Aceituno (javiacei) + - Piotr Stankowski + - Nikita Nyatin + - Mathieu + - Ivan Kosheliev (dfyz) + - Fabien Bourigault + - Bart van Raaij (bartvanraaij) + - Nextpage + - Kevin Wojniak + - Nicola Pietroluongo + - Morf + - Bram de Smidt + - Thomas Ploch + - Michael Dwyer (kalifg) + - Julien Chaumond (julien_c) + - Alexey Rogachev + - jordanjix + - Eliú Timaná + - Ali Sunjaya + - Dorthe Luebbert (luebbert42) + - Fabien Lasserre (fbnlsr) + - Kevin Wojniak + - Ryan Castle (ryancastle) + - Joseph Bielawski + - Mickaël + - Sait KURT (deswa) + - Lucian Tugui (luciantugui) + - Brandin Chiu + - Sebastian Klaus + - peaceant + - temenb + - Carwyn Moore + - Artur 'Wodor' Wielogorski + - Benjamin Zaslavsky + - z38 + - Julien Dubois + - Jean Pasqualini + - morrsky + - Guillaume Sylvestre (gsylvestre) + - DerStoffel + - larsborn + - Simon Daigre (simondgre) + - Daniel Werner (powerdan) + - Lars + - Giulio Lastra + - Maikel Ortega Hernández (maikeloh) + - Marcel Serra Julià (serrajm) + - GoT + - Daniele Orler + - Gus + - Ilya Antipenko + - Pooyan Khanjankhani + - SquareInnov + - Parthasarathi GK + - Michiel Missotten (zenklys) + - Chris Taylor + - David Rolston (gizmola) + - Matt Trask (matthewtrask) + - unknown + - Francis Hilaire + - Kirill Kotov + - Vincent Jousse + - Michaël Dieudonné + - Niklas Grießer + - Rick Kuipers + - Mykola Martynov (mykola) + - Georgiana Gligor (gbtekkie) + - ubick + - sakul95 + - Dmitry Vishin (wishmaster) + - Adiel Cristo + - Franklin LIA + - jakumi + - m_hikage + - Nic Wortel (nicwortel) + - Josh Taylor (josher) + - Jibé (jibe0123) + - Tyler King + - Julien Ferchaud (guns17) + - Peter Bottenberg + - Tobias Berge + - Fabian Spillner (fspillner) + - Nadim AL ABDOU + - Marco + - sebgarwood-gl + - Joe Mizzi (themizzi) + - Kristof (jockri) + - Daniel Karp + - Thomas Lemaire + - Paweł Czyżewski + - asartalo + - Aurélien Morvan + - LucileDT + - Martin Czerwinski + - Pavel Shirmanov (genzo) + - Grzegorz Balcewicz (gbalcewicz) + - Cullen Walsh + - Bart Heyrman + - Giuseppe Attardi + - Kevin Warrington + - Carlos Zuniga (charlieman) From 3f177c5b3bf2ce1a90d8306a2b2176de6305fd50 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 27 Sep 2025 14:20:56 +0200 Subject: [PATCH 07/69] Update VERSION for 6.4.26 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index e274da593ae4b..69a62e6d036e1 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -76,12 +76,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static array $freshCache = []; - public const VERSION = '6.4.26-DEV'; + public const VERSION = '6.4.26'; public const VERSION_ID = 60426; public const MAJOR_VERSION = 6; public const MINOR_VERSION = 4; public const RELEASE_VERSION = 26; - public const EXTRA_VERSION = 'DEV'; + public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '11/2026'; public const END_OF_LIFE = '11/2027'; From db8b9da89978110c7b1b299e2218dbe6abcbef4e Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 27 Sep 2025 14:31:15 +0200 Subject: [PATCH 08/69] Bump Symfony version to 6.4.27 --- src/Symfony/Component/HttpKernel/Kernel.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 69a62e6d036e1..6194143d44218 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -76,12 +76,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static array $freshCache = []; - public const VERSION = '6.4.26'; - public const VERSION_ID = 60426; + public const VERSION = '6.4.27-DEV'; + public const VERSION_ID = 60427; public const MAJOR_VERSION = 6; public const MINOR_VERSION = 4; - public const RELEASE_VERSION = 26; - public const EXTRA_VERSION = ''; + public const RELEASE_VERSION = 27; + public const EXTRA_VERSION = 'DEV'; public const END_OF_MAINTENANCE = '11/2026'; public const END_OF_LIFE = '11/2027'; From 5e953a9699ea749ff100b4a27c3ade8da4d4c8f7 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 27 Sep 2025 14:37:21 +0200 Subject: [PATCH 09/69] Bump Symfony version to 7.3.5 --- src/Symfony/Component/HttpKernel/Kernel.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index c70c2f4466c26..f5843fec3274c 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -73,12 +73,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static array $freshCache = []; - public const VERSION = '7.3.4'; - public const VERSION_ID = 70304; + public const VERSION = '7.3.5-DEV'; + public const VERSION_ID = 70305; public const MAJOR_VERSION = 7; public const MINOR_VERSION = 3; - public const RELEASE_VERSION = 4; - public const EXTRA_VERSION = ''; + public const RELEASE_VERSION = 5; + public const EXTRA_VERSION = 'DEV'; public const END_OF_MAINTENANCE = '01/2026'; public const END_OF_LIFE = '01/2026'; From cbdcffccbaecdd18f74c9eb74d1ebb85ec01e920 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sat, 27 Sep 2025 17:31:55 +0200 Subject: [PATCH 10/69] do not pass more than one byte to ord() --- src/Symfony/Component/JsonPath/Tokenizer/JsonPathTokenizer.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Symfony/Component/JsonPath/Tokenizer/JsonPathTokenizer.php b/src/Symfony/Component/JsonPath/Tokenizer/JsonPathTokenizer.php index c6ef0d1d9a463..53f898a0f0b27 100644 --- a/src/Symfony/Component/JsonPath/Tokenizer/JsonPathTokenizer.php +++ b/src/Symfony/Component/JsonPath/Tokenizer/JsonPathTokenizer.php @@ -88,9 +88,8 @@ public static function tokenize(JsonPath $query): array if ($inQuote) { // literal control characters (U+0000 through U+001F) in quoted strings // are not be allowed unless they are part of escape sequences - $ord = \ord($char); if ($inBracket) { - if ($ord <= 31) { + if (\ord($char[0]) <= 31) { if (!self::isEscaped($chars, $i)) { throw new InvalidJsonPathException('control characters are not allowed in quoted strings.', $position); } From a148debfe3dab33dadda565086138a6df324968e Mon Sep 17 00:00:00 2001 From: Alexandre Daubois Date: Sun, 28 Sep 2025 11:54:37 +0200 Subject: [PATCH 11/69] [JsonPath] Add @alexandre-daubois as code owner --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e642ffb795bd8..af85b8b91b39f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,6 +24,8 @@ /src/Symfony/Component/Form/ @xabbuh @yceruto # HttpKernel /src/Symfony/Component/HttpKernel/Log/Logger.php @dunglas +# JsonPath +/src/Symfony/Component/JsonPath/ @alexandre-daubois # Lock /src/Symfony/Component/Lock/ @jderusse # Notifer From 4a1f6802dbbe55c145144d7e059ae98ab8aa9054 Mon Sep 17 00:00:00 2001 From: matlec Date: Mon, 29 Sep 2025 10:38:43 +0200 Subject: [PATCH 12/69] =?UTF-8?q?[Scheduler]=20Don=E2=80=99t=20get=20next?= =?UTF-8?q?=20run=20date=20from=20`null`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Component/Scheduler/Generator/MessageGenerator.php | 2 +- .../Scheduler/Tests/Generator/MessageGeneratorTest.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Scheduler/Generator/MessageGenerator.php b/src/Symfony/Component/Scheduler/Generator/MessageGenerator.php index e247748de023b..98fe4d28121e6 100644 --- a/src/Symfony/Component/Scheduler/Generator/MessageGenerator.php +++ b/src/Symfony/Component/Scheduler/Generator/MessageGenerator.php @@ -77,7 +77,7 @@ public function getMessages(): \Generator $nextTime = $trigger->getNextRunDate($time); if ($this->schedule->shouldProcessOnlyLastMissedRun()) { - while ($nextTime < $this->clock->now()) { + while ($nextTime && $nextTime < $this->clock->now()) { $nextTime = $trigger->getNextRunDate($nextTime); } } diff --git a/src/Symfony/Component/Scheduler/Tests/Generator/MessageGeneratorTest.php b/src/Symfony/Component/Scheduler/Tests/Generator/MessageGeneratorTest.php index 43d966c4ffcf7..3836e47f5eb1b 100644 --- a/src/Symfony/Component/Scheduler/Tests/Generator/MessageGeneratorTest.php +++ b/src/Symfony/Component/Scheduler/Tests/Generator/MessageGeneratorTest.php @@ -217,7 +217,7 @@ public function testCheckpointSavedInBigBrokenLoop() $scheduler = new MessageGenerator($schedule, 'dummy', clock: $clock, checkpoint: $checkpoint); - // Warmup. The first run is always returns nothing. + // Warmup. The first run always returns nothing. $this->assertSame([], iterator_to_array($scheduler->getMessages(), false)); $this->assertEquals(self::makeDateTime('22:15:00'), $checkpoint->time()); @@ -240,7 +240,7 @@ public function testCheckpointSavedInBigBrokenLoopWithOnlyLastMissed() { $clock = new MockClock(self::makeDateTime('22:15:00')); - $message = RecurringMessage::every('1 minute', (object) ['id' => 'message']); + $message = RecurringMessage::every('1 minute', (object) ['id' => 'message'], until: self::makeDateTime('22:23:00')); $schedule = (new Schedule())->add($message); $cache = new ArrayAdapter(); @@ -249,7 +249,7 @@ public function testCheckpointSavedInBigBrokenLoopWithOnlyLastMissed() $scheduler = new MessageGenerator($schedule, 'dummy', clock: $clock, checkpoint: $checkpoint); - // Warmup. The first run is always returns nothing. + // Warmup. The first run always returns nothing. $this->assertSame([], iterator_to_array($scheduler->getMessages(), false)); $this->assertEquals(self::makeDateTime('22:15:00'), $clock->now()); From dde0380e33f177aeeaea35029cbaa262cfe1af4c Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 26 Sep 2025 13:34:18 +0200 Subject: [PATCH 13/69] do not cast too big floats to int --- .../Core/DataTransformer/NumberToLocalizedStringTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php index 6e9db3e091cc4..2d71f7bced12d 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php @@ -177,7 +177,7 @@ protected function getNumberFormatter(): \NumberFormatter */ protected function castParsedValue(int|float $value): int|float { - if (\is_int($value) && $value === (int) $float = (float) $value) { + if (\is_int($value) && (($float = (float) $value) < \PHP_INT_MAX) && $value === (int) $float) { return $float; } From b1e45760d0dc9555e0c9e096bb2e7ddbe95c6c2a Mon Sep 17 00:00:00 2001 From: Benjamin Toussaint Date: Mon, 29 Sep 2025 10:10:58 +0200 Subject: [PATCH 14/69] [Mailer][MailJet] Fix forbidden headers case-sensitive comparison --- .../Mailjet/Transport/MailjetApiTransport.php | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/Symfony/Component/Mailer/Bridge/Mailjet/Transport/MailjetApiTransport.php b/src/Symfony/Component/Mailer/Bridge/Mailjet/Transport/MailjetApiTransport.php index 861ad8f014a00..bc713d8d0773b 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailjet/Transport/MailjetApiTransport.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailjet/Transport/MailjetApiTransport.php @@ -30,25 +30,25 @@ class MailjetApiTransport extends AbstractApiTransport private const HOST = 'api.mailjet.com'; private const API_VERSION = '3.1'; private const FORBIDDEN_HEADERS = [ - 'Date', 'X-CSA-Complaints', 'Message-Id', 'X-MJ-StatisticsContactsListID', - 'DomainKey-Status', 'Received-SPF', 'Authentication-Results', 'Received', - 'From', 'Sender', 'Subject', 'To', 'Cc', 'Bcc', 'Reply-To', 'Return-Path', 'Delivered-To', 'DKIM-Signature', - 'X-Feedback-Id', 'X-Mailjet-Segmentation', 'List-Id', 'X-MJ-MID', 'X-MJ-ErrorMessage', - 'X-Mailjet-Debug', 'User-Agent', 'X-Mailer', 'X-MJ-WorkflowID', + 'date', 'x-csa-complaints', 'message-id', 'x-mj-statisticscontactslistid', + 'domainkey-status', 'received-spf', 'authentication-results', 'received', + 'from', 'sender', 'subject', 'to', 'cc', 'bcc', 'reply-to', 'return-path', 'delivered-to', 'dkim-signature', + 'x-feedback-id', 'x-mailjet-segmentation', 'list-id', 'x-mj-mid', 'x-mj-errormessage', + 'x-mailjet-debug', 'user-agent', 'x-mailer', 'x-mj-workflowid', ]; private const HEADER_TO_MESSAGE = [ - 'X-MJ-TemplateLanguage' => ['TemplateLanguage', 'bool'], - 'X-MJ-TemplateID' => ['TemplateID', 'int'], - 'X-MJ-TemplateErrorReporting' => ['TemplateErrorReporting', 'json'], - 'X-MJ-TemplateErrorDeliver' => ['TemplateErrorDeliver', 'bool'], - 'X-MJ-Vars' => ['Variables', 'json'], - 'X-MJ-CustomID' => ['CustomID', 'string'], - 'X-MJ-EventPayload' => ['EventPayload', 'string'], - 'X-Mailjet-Campaign' => ['CustomCampaign', 'string'], - 'X-Mailjet-DeduplicateCampaign' => ['DeduplicateCampaign', 'bool'], - 'X-Mailjet-Prio' => ['Priority', 'int'], - 'X-Mailjet-TrackClick' => ['TrackClicks', 'string'], - 'X-Mailjet-TrackOpen' => ['TrackOpens', 'string'], + 'x-mj-templatelanguage' => ['TemplateLanguage', 'bool'], + 'x-mj-templateid' => ['TemplateID', 'int'], + 'x-mj-templateerrorreporting' => ['TemplateErrorReporting', 'json'], + 'x-mj-templateerrordeliver' => ['TemplateErrorDeliver', 'bool'], + 'x-mj-vars' => ['Variables', 'json'], + 'x-mj-customid' => ['CustomID', 'string'], + 'x-mj-eventpayload' => ['EventPayload', 'string'], + 'x-mailjet-campaign' => ['CustomCampaign', 'string'], + 'x-mailjet-deduplicatecampaign' => ['DeduplicateCampaign', 'bool'], + 'x-mailjet-prio' => ['Priority', 'int'], + 'x-mailjet-trackclick' => ['TrackClicks', 'string'], + 'x-mailjet-trackopen' => ['TrackOpens', 'string'], ]; private string $privateKey; @@ -141,12 +141,13 @@ private function getPayload(Email $email, Envelope $envelope): array $message['HTMLPart'] = $html; } - foreach ($email->getHeaders()->all() as $header) { - if ($convertConf = self::HEADER_TO_MESSAGE[$header->getName()] ?? false) { + foreach ($email->getHeaders()->all() as $headerName => $header) { + if ($convertConf = self::HEADER_TO_MESSAGE[$headerName] ?? false) { $message[$convertConf[0]] = $this->castCustomHeader($header->getBodyAsString(), $convertConf[1]); continue; } - if (\in_array($header->getName(), self::FORBIDDEN_HEADERS, true)) { + + if (\in_array($headerName, self::FORBIDDEN_HEADERS, true)) { continue; } From aabbe84c7c13b96e525ad79362ba88e54168206d Mon Sep 17 00:00:00 2001 From: Jan Dobrovodsky Date: Tue, 30 Sep 2025 14:58:28 +0200 Subject: [PATCH 15/69] [Validator] Review and fix Czech translation - review and fix strings marked for review - fix several discrepancies in related strings to bring them in line with rest of translation --- .../Resources/translations/validators.cs.xlf | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf index c75e33c453771..11a8cbab80237 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf @@ -160,19 +160,19 @@ The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Obrázek je příliš široký ({{ width }}px). Maximální povolená šířka obrázku je {{ max_width }}px. + Obrázek je příliš široký ({{ width }}px). Maximální povolená šířka je {{ max_width }}px. The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Obrázek je příliš úzký ({{ width }}px). Minimální šířka musí být {{ min_width }}px. + Obrázek je příliš úzký ({{ width }}px). Minimální očekávaná šířka je {{ min_width }}px. The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Obrázek je příliš vysoký ({{ height }}px). Maximální povolená výška obrázku je {{ max_height }}px. + Obrázek je příliš vysoký ({{ height }}px). Maximální povolená výška je {{ max_height }}px. The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Obrázek je příliš nízký ({{ height }}px). Minimální výška obrázku musí být {{ min_height }}px. + Obrázek je příliš nízký ({{ height }}px). Minimální očekávaná výška je {{ min_height }}px. This value should be the user's current password. @@ -280,15 +280,15 @@ The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Poměr stran obrázku je příliš velký ({{ ratio }}). Maximální povolený poměr stran obrázku je {{ max_ratio }}. + Poměr stran obrázku je příliš velký ({{ ratio }}). Maximální povolený poměr stran je {{ max_ratio }}. The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Poměr stran obrázku je příliš malý ({{ ratio }}). Minimální povolený poměr stran obrázku je {{ min_ratio }}. + Poměr stran obrázku je příliš malý ({{ ratio }}). Minimální očekávaný poměr stran je {{ min_ratio }}. The image is square ({{ width }}x{{ height }}px). Square images are not allowed. - Strany obrázku jsou čtvercové ({{ width }}x{{ height }}px). Čtvercové obrázky nejsou povolené. + Obrázek je čtvercový ({{ width }}x{{ height }}px). Čtvercové obrázky nejsou povolené. The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed. @@ -472,87 +472,87 @@ This file is not a valid video. - Tento soubor není platné video. + Tento soubor není video. The size of the video could not be detected. - Velikost videa se nepodařilo zjistit. + Nepodařily se zjistit rozměry videa. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Šířka videa je příliš velká ({{ width }}px). Povolená maximální šířka je {{ max_width }}px. + Video je příliš široké ({{ width }}px). Maximální povolená šířka je {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Šířka videa je příliš malá ({{ width }}px). Minimální očekávaná šířka je {{ min_width }} px. + Video je příliš úzké ({{ width }}px). Minimální očekávaná šířka je {{ min_width }} px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Výška videa je příliš velká ({{ height }}px). Povolená maximální výška je {{ max_height }}px. + Video je příliš vysoké ({{ height }}px). Maximální povolená výška je {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Výška videa je příliš malá ({{ height }}px). Očekávaná minimální výška je {{ min_height }}px. + Video je příliš nízké ({{ height }}px). Minimální očekávaná výška je {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Video má příliš málo pixelů ({{ pixels }}). Očekávané minimální množství je {{ min_pixels }}. + Video má příliš málo pixelů ({{ pixels }} pixelů). Minimální očekávané množství je {{ min_pixels }} pixelů. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Video má příliš mnoho pixelů ({{ pixels }}). Očekávané maximum je {{ max_pixels }}. + Video má příliš mnoho pixelů ({{ pixels }} pixelů). Maximální očekávané množství je {{ max_pixels }} pixelů. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Poměr videa je příliš velký ({{ ratio }}). Povolený maximální poměr je {{ max_ratio }}. + Poměr stran videa je příliš velký ({{ ratio }}). Maximální povolený poměr stran je {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Poměr videa je příliš malý ({{ ratio }}). Minimální očekávaný poměr je {{ min_ratio }}. + Poměr stran videa je příliš malý ({{ ratio }}). Minimální očekávaný poměr stran je {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Video je čtvercové ({{ width }}x{{ height }}px). Čtvercová videa nejsou povolena. + Video je čtvercové ({{ width }}x{{ height }}px). Čtvercová videa nejsou povolená. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Video je na šířku ({{ width }}x{{ height }} px). Videa na šířku nejsou povolena. + Video je orientované na šířku ({{ width }}x{{ height }} px). Videa orientovaná na šířku nejsou povolená. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Video je orientován na výšku ({{ width }}x{{ height }} px). Videa na výšku nejsou povolena. + Video je orientované na výšku ({{ width }}x{{ height }} px). Videa orientovaná na výšku nejsou povolená. The video file is corrupted. - Videosoubor je poškozen. + Soubor videa je poškozený. The video contains multiple streams. Only one stream is allowed. - Video obsahuje více streamů. Povolen je pouze jeden stream. + Video obsahuje více proudů. Povolen je pouze jeden proud. Unsupported video codec "{{ codec }}". - Nepodporovaný video kodek „{{ codec }}“. + Nepodporovaný kodek videa "{{ codec }}". Unsupported video container "{{ container }}". - Nepodporovaný videokontejner "{{ container }}". + Nepodporovaný kontejner videa "{{ container }}". The image file is corrupted. - Soubor obrázku je poškozen. + Soubor obrázku je poškozený. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Obrázek má příliš málo pixelů ({{ pixels }}). Očekávané minimum je {{ min_pixels }}. + Obrázek má příliš málo pixelů ({{ pixels }} pixelů). Minimální očekávané množství je {{ min_pixels }} pixelů. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Obrázek má příliš mnoho pixelů ({{ pixels }}). Očekávané maximum je {{ max_pixels }}. + Obrázek má příliš mnoho pixelů ({{ pixels }} pixelů). Maximální očekávané množství je {{ max_pixels }} pixelů. This filename does not match the expected charset. - Název tohoto souboru neodpovídá očekávané znakové sadě. + Tento název souboru neodpovídá očekávané znakové sadě. From 302ec690f103268c7297b3c9d5b64cf3c55ee16b Mon Sep 17 00:00:00 2001 From: czachor Date: Tue, 30 Sep 2025 21:05:50 +0200 Subject: [PATCH 16/69] [Validator] Fix Polish translation for word count validation message Fixed the Polish translation for word count validation message by adding all three required plural forms (instead of two). --- .../Validator/Resources/translations/validators.pl.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf index 7cffa5f72ebf5..8f329dcd43550 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf @@ -448,7 +448,7 @@ This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - Ta wartość jest zbyt długa. Powinna zawierać jedno słowo.|Ta wartość jest zbyt długa. Powinna zawierać {{ max }} słów lub mniej. + Ta wartość jest zbyt długa. Powinna zawierać jedno słowo.|Ta wartość jest zbyt długa. Powinna zawierać {{ max }} słowa lub mniej.|Ta wartość jest zbyt długa. Powinna zawierać {{ max }} słów lub mniej. This value does not represent a valid week in the ISO 8601 format. From 4a40f3ce9105025a2fed86e34d750951ae53dcd7 Mon Sep 17 00:00:00 2001 From: GK-302 <143247656+GK-302@users.noreply.github.com> Date: Sun, 28 Sep 2025 20:33:07 +0900 Subject: [PATCH 17/69] [Validator] Improve and complete Japanese translations --- .../Resources/translations/validators.ja.xlf | 174 +++++++++--------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf index 860696d2c218e..419b77e09e476 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf @@ -4,19 +4,19 @@ This value should be false. - falseである必要があります。 + この値はfalseでなければなりません。 This value should be true. - trueである必要があります。 + この値はtrueでなければなりません。 This value should be of type {{ type }}. - {{ type }}型でなければなりません。 + この値は{{ type }}型でなければなりません。 This value should be blank. - 空でなければなりません。 + この値は空でなければなりません。 The value you selected is not a valid choice. @@ -28,7 +28,7 @@ You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices. - {{ limit }}個以内で選択してください。 + {{ limit }}個以下で選択してください。 One or more of the given values is invalid. @@ -44,15 +44,15 @@ This value is not a valid date. - 無効な日付です。 + 有効な日付ではありません。 This value is not a valid datetime. - 無効な日時です。 + 有効な日時ではありません。 This value is not a valid email address. - 無効なメールアドレスです。 + 有効なメールアドレスではありません。 The file could not be found. @@ -64,35 +64,35 @@ The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}. - ファイルのサイズが大きすぎます({{ size }} {{ suffix }})。ファイルサイズは{{ limit }} {{ suffix }}以下にしてください。 + ファイルのサイズが大きすぎます({{ size }} {{ suffix }})。{{ limit }} {{ suffix }}以下にしてください。 The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}. - ファイルのMIMEタイプが無効です({{ type }})。有効なMIMEタイプは{{ types }}です。 + ファイルのMIMEタイプが無効です({{ type }})。有効なMIMEタイプは{{ types }}です。 This value should be {{ limit }} or less. - {{ limit }}以下でなければなりません。 + この値は{{ limit }}以下でなければなりません。 This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less. - この値は、{{ limit }}文字以内で入力してください。 + 長すぎます。この値は{{ limit }}文字以下で入力してください。 This value should be {{ limit }} or more. - {{ limit }}以上でなければなりません。 + この値は{{ limit }}以上でなければなりません。 This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more. - この値は、{{ limit }}文字以上で入力してください。 + 短すぎます。この値は{{ limit }}文字以上で入力してください。 This value should not be blank. - 入力してください。 + この値は空にできません。 This value should not be null. - 入力してください。 + 値を入力してください。 This value should be null. @@ -100,23 +100,23 @@ This value is not valid. - 無効な値です。 + 有効な値ではありません。 This value is not a valid time. - 無効な時刻です。 + 有効な時刻ではありません。 This value is not a valid URL. - 無効なURLです。 + 有効なURLではありません。 The two values should be equal. - 2つの値が同じでなければなりません。 + 2つの値は同じでなければなりません。 The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}. - ファイルのサイズが大きすぎます。有効な最大サイズは{{ limit }} {{ suffix }}です。 + ファイルのサイズが大きすぎます。許可されている最大サイズは{{ limit }} {{ suffix }}です。 The file is too large. @@ -128,19 +128,19 @@ This value should be a valid number. - 有効な数値ではありません。 + この値は有効な数値でなければなりません。 This file is not a valid image. - ファイルが画像ではありません。 + 選択されたファイルは有効な画像ではありません。 This value is not a valid IP address. - 無効なIPアドレスです。 + 有効なIPアドレスではありません。 This value is not a valid language. - 無効な言語名です。 + 有効な言語名ではありません。 This value is not a valid locale. @@ -160,19 +160,19 @@ The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - 画像の幅が大きすぎます({{ width }}ピクセル)。{{ max_width }}ピクセル以下にしてください。 + 画像の幅が大きすぎます({{ width }}px)。{{ max_width }}px以下にしてください。 The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - 画像の幅が小さすぎます({{ width }}ピクセル)。{{ min_width }}ピクセル以上にしてください。 + 画像の幅が小さすぎます({{ width }}px)。{{ min_width }}px以上にしてください。 The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - 画像の高さが大きすぎます({{ height }}ピクセル)。{{ max_height }}ピクセル以下にしてください。 + 画像の高さが大きすぎます({{ height }}px)。{{ max_height }}px以下にしてください。 The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - 画像の高さが小さすぎます({{ height }}ピクセル)。{{ min_height }}ピクセル以上にしてください。 + 画像の高さが小さすぎます({{ height }}px)。{{ min_height }}px以上にしてください。 This value should be the user's current password. @@ -180,11 +180,11 @@ This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters. - {{ limit }}文字ちょうどで入力してください。 + この値は{{ limit }}文字ちょうどで入力してください。 The file was only partially uploaded. - ファイルのアップロードに失敗しました。 + ファイルのアップロードが完了しませんでした。 No file was uploaded. @@ -204,11 +204,11 @@ This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more. - 少なくとも{{ limit }}個の要素を含む必要があります。 + 要素は{{ limit }}個以上でなければなりません。 This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less. - {{ limit }}個以下の要素を含む必要があります。 + 要素は{{ limit }}個以下でなければなりません。 This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements. @@ -220,7 +220,7 @@ Unsupported card type or invalid card number. - 未対応のカード種類または無効なカード番号です。 + 対応していないカードまたは無効なカード番号です。 This value is not a valid International Bank Account Number (IBAN). @@ -248,59 +248,59 @@ This value should be equal to {{ compared_value }}. - {{ compared_value }}と同じ値でなければなりません。 + この値は{{ compared_value }}と同じ値でなければなりません。 This value should be greater than {{ compared_value }}. - {{ compared_value }}より大きくなければなりません。 + この値は{{ compared_value }}より大きくなければなりません。 This value should be greater than or equal to {{ compared_value }}. - {{ compared_value }}以上でなければなりません。 + この値は{{ compared_value }}以上でなければなりません。 This value should be identical to {{ compared_value_type }} {{ compared_value }}. - この値は{{ compared_value_type }} {{ compared_value }}と同じでなければなりません。 + この値は{{ compared_value_type }}型の{{ compared_value }}と同じでなければなりません。 This value should be less than {{ compared_value }}. - {{ compared_value }}未満でなければなりません。 + この値は{{ compared_value }}未満でなければなりません。 This value should be less than or equal to {{ compared_value }}. - {{ compared_value }}以下でなければなりません。 + この値は{{ compared_value }}以下でなければなりません。 This value should not be equal to {{ compared_value }}. - {{ compared_value }}と等しくてはいけません。 + この値は{{ compared_value }}と等しくてはいけません。 This value should not be identical to {{ compared_value_type }} {{ compared_value }}. - この値は{{ compared_value_type }}の{{ compared_value }}と異なる値にしてください。 + この値は{{ compared_value_type }}型の{{ compared_value }}と異なる値にしてください。 The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - 画像のアスペクト比が大きすぎます({{ ratio }})。{{ max_ratio }}までにしてください。 + 画像のアスペクト比が大きすぎます({{ ratio }})。{{ max_ratio }}までにしてください。 The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - 画像のアスペクト比が小さすぎます({{ ratio }})。{{ min_ratio }}以上にしてください。 + 画像のアスペクト比が小さすぎます({{ ratio }})。{{ min_ratio }}以上にしてください。 The image is square ({{ width }}x{{ height }}px). Square images are not allowed. - 画像が正方形になっています({{ width }}x{{ height }}ピクセル)。正方形の画像は許可されていません。 + 画像が正方形になっています({{ width }}x{{ height }}px)。正方形の画像は許可されていません。 The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed. - 画像が横向きになっています({{ width }}x{{ height }}ピクセル)。横向きの画像は許可されていません。 + 画像が横向きになっています({{ width }}x{{ height }}px)。横向きの画像は許可されていません。 The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed. - 画像が縦向きになっています({{ width }}x{{ height }}ピクセル)。縦向きの画像は許可されていません。 + 画像が縦向きになっています({{ width }}x{{ height }}px)。縦向きの画像は許可されていません。 An empty file is not allowed. - 空のファイルは無効です。 + 空のファイルは許可されていません。 The host could not be resolved. @@ -308,11 +308,11 @@ This value does not match the expected {{ charset }} charset. - 文字コードが{{ charset }}と一致しません。 + この値の文字コードが期待される{{ charset }}と一致しません。 This value is not a valid Business Identifier Code (BIC). - 有効なSWIFTコードではありません。 + 有効な事業者識別コード(BIC)ではありません。 Error @@ -324,7 +324,7 @@ This value should be a multiple of {{ compared_value }}. - {{ compared_value }}の倍数でなければなりません。 + この値は{{ compared_value }}の倍数でなければなりません。 This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. @@ -332,7 +332,7 @@ This value should be valid JSON. - 有効なJSONでなければなりません。 + この値は有効なJSONでなければなりません。 This collection should contain only unique elements. @@ -340,19 +340,19 @@ This value should be positive. - 正の数でなければなりません。 + この値は正の数でなければなりません。 This value should be either positive or zero. - 正の数、または0でなければなりません。 + この値は正の数、または0でなければなりません。 This value should be negative. - 負の数でなければなりません。 + この値は負の数でなければなりません。 This value should be either negative or zero. - 負の数、または0でなければなりません。 + この値は負の数、または0でなければなりません。 This value is not a valid timezone. @@ -364,7 +364,7 @@ This value should be between {{ min }} and {{ max }}. - {{ min }}以上{{ max }}以下でなければなりません。 + この値は{{ min }}以上{{ max }}以下でなければなりません。 This value is not a valid hostname. @@ -376,11 +376,11 @@ This value should satisfy at least one of the following constraints: - 以下の制約のうち少なくとも1つを満たす必要があります: + 以下の制約のうち少なくとも1つを満たさなければなりません。 Each element of this collection should satisfy its own set of constraints. - コレクションの各要素は、それぞれの制約を満たす必要があります。 + コレクションの各要素は、それぞれの制約を満たさなければなりません。 This value is not a valid International Securities Identification Number (ISIN). @@ -388,7 +388,7 @@ This value should be a valid expression. - 有効な式でなければなりません。 + この値は有効な式形式でなければなりません。 This value is not a valid CSS color. @@ -400,7 +400,7 @@ The value of the netmask should be between {{ min }} and {{ max }}. - ネットマスクは{{ min }}から{{ max }}の範囲で入力してください。 + サブネットマスクは{{ min }}から{{ max }}の範囲で入力してください。 The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less. @@ -428,11 +428,11 @@ The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}. - ファイルの拡張子が無効です({{ extension }})。有効な拡張子は{{ extensions }}です。 + ファイルの拡張子が無効です({{ extension }})。有効な拡張子は{{ extensions }}です。 The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}. - 検出された文字コードは無効です({{ detected }})。有効な文字コードは{{ encodings }}です。 + 検出された文字コードは無効です({{ detected }})。有効な文字コードは{{ encodings }}です。 This value is not a valid MAC address. @@ -444,11 +444,11 @@ This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words. - 短すぎます。{{ min }}単語以上にする必要があります。 + 短すぎます。この値は{{ min }}単語以上にする必要があります。 This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - 長すぎます。{{ max }}単語以下にする必要があります。 + 長すぎます。この値は{{ max }}単語以下にする必要があります。 This value does not represent a valid week in the ISO 8601 format. @@ -456,7 +456,7 @@ This value is not a valid week. - 無効な週形式です。 + 有効な週形式ではありません。 This value should not be before week "{{ min }}". @@ -472,87 +472,87 @@ This file is not a valid video. - このファイルは有効な動画ではありません。 + 選択されたファイルは有効な動画ではありません。 The size of the video could not be detected. - 動画のサイズを検出できませんでした。 + 動画のファイルサイズを検出できませんでした。 The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - 動画の幅が大きすぎます({{ width }}px)。許可されている最大幅は {{ max_width }}px です。 + 動画の幅が大きすぎます({{ width }}px)。許可されている最大の幅は {{ max_width }}px です。 The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - 動画の幅が小さすぎます({{ width }}px)。想定される最小幅は {{ min_width }}px です。 + 動画の幅が小さすぎます({{ width }}px)。許可されている最小の幅は {{ min_width }}px です。 The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - 動画の高さが大きすぎます ({{ height }}px)。許可されている最大の高さは {{ max_height }}px です。 + 動画の高さが大きすぎます ({{ height }}px)。許可されている最大の高さは {{ max_height }}px です。 The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - ビデオの高さが小さすぎます ({{ height }}px)。想定される最小高さは {{ min_height }}px です。 + 動画の高さが小さすぎます ({{ height }}px)。許可されている最小の高さは {{ min_height }}px です。 The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - この動画のピクセル数が少なすぎます ({{ pixels }}). 期待される最小量は {{ min_pixels }} です。 + この動画のピクセル数が少なすぎます ({{ pixels }})。許可されている最小ピクセル数は {{ min_pixels }} です。 The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - この動画のピクセル数が多すぎます ({{ pixels }})。想定される最大値は {{ max_pixels }} です。 + この動画のピクセル数が多すぎます ({{ pixels }})。許可されている最大ピクセル数は {{ max_pixels }} です。 The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - 動画の比率が大きすぎます ({{ ratio }})。許可されている最大比率は {{ max_ratio }} です。 + 動画のアスペクト比が大きすぎます ({{ ratio }})。許可されている最大比率は {{ max_ratio }} です。 The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - ビデオのアスペクト比が小さすぎます ({{ ratio }})。想定される最小比率は {{ min_ratio }} です。 + 動画のアスペクト比が小さすぎます ({{ ratio }})。許可されている最小比率は {{ min_ratio }} です。 The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - 動画は正方形です ({{ width }}x{{ height }}px)。正方形の動画は許可されていません。 + 動画は正方形です ({{ width }}x{{ height }}px)。正方形の動画は許可されていません。 The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - 動画は横向きです({{ width }}x{{ height }}px)。横向きの動画は許可されていません。 + 動画は横向きです({{ width }}x{{ height }}px)。横向きの動画は許可されていません。 The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - 動画は縦向きです({{ width }}x{{ height }}px)。縦向きの動画は許可されていません。 + 動画は縦向きです({{ width }}x{{ height }}px)。縦向きの動画は許可されていません。 The video file is corrupted. - ビデオファイルが破損しています。 + 動画ファイルが破損しています。 The video contains multiple streams. Only one stream is allowed. - この動画には複数のストリームが含まれています。許可されるのは1つのストリームのみです。 + この動画には複数のストリームが含まれています。許可されるのは1つのストリームのみです。 Unsupported video codec "{{ codec }}". - サポートされていないビデオコーデック「{{ codec }}」。 + サポートされていないビデオコーデック「{{ codec }}」です。 Unsupported video container "{{ container }}". - サポートされていない動画コンテナ "{{ container }}". + サポートされていない動画コンテナ「{{ container }}」です。 The image file is corrupted. - 画像ファイルが破損しています。 + 画像ファイルが破損しています。 The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - 画像のピクセル数が少なすぎます({{ pixels }})。想定される最小数は {{ min_pixels }} です。 + 画像のピクセル数が少なすぎます({{ pixels }})。許可されている最小ピクセル数は {{ min_pixels }} です。 The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - 画像のピクセル数が多すぎます ({{ pixels }}). 想定される最大値は {{ max_pixels }} です. + 画像のピクセル数が多すぎます({{ pixels }})。許可されている最大ピクセル数は {{ max_pixels }} です。 This filename does not match the expected charset. - このファイル名は期待される文字セットと一致しません。 + このファイル名は期待される文字セットと一致しません。 From ed53287b9b05ac6822eaf9bda6a9df85bcd5adf2 Mon Sep 17 00:00:00 2001 From: Crovitche-1623 Date: Fri, 26 Sep 2025 18:35:42 +0200 Subject: [PATCH 18/69] [Intl] Support time in generated data in currencies validity --- .../Data/Generator/CurrencyDataGenerator.php | 11 +- .../Intl/Resources/data/currencies/meta.php | 1384 ++++++++--------- 2 files changed, 698 insertions(+), 697 deletions(-) diff --git a/src/Symfony/Component/Intl/Data/Generator/CurrencyDataGenerator.php b/src/Symfony/Component/Intl/Data/Generator/CurrencyDataGenerator.php index 0b275763a1e3b..5aae5e19cc624 100644 --- a/src/Symfony/Component/Intl/Data/Generator/CurrencyDataGenerator.php +++ b/src/Symfony/Component/Intl/Data/Generator/CurrencyDataGenerator.php @@ -167,11 +167,11 @@ private function generateCurrencyMap(mixed $supplementalDataBundle): array } if (\array_key_exists('from', $metadata)) { - $metadata['from'] = self::icuPairToDate($metadata['from']); + $metadata['from'] = self::icuPairToDatetimeString($metadata['from']); } if (\array_key_exists('to', $metadata)) { - $metadata['to'] = self::icuPairToDate($metadata['to']); + $metadata['to'] = self::icuPairToDatetimeString($metadata['to']); } if (\array_key_exists('tender', $metadata)) { @@ -229,7 +229,7 @@ private function generateNumericToAlpha3Mapping(array $alpha3ToNumericMapping): * * @param array{0: int, 1: int} $pair */ - private static function icuPairToDate(array $pair): string + private static function icuPairToDatetimeString(array $pair): string { [$highBits32, $lowBits32] = $pair; @@ -245,12 +245,13 @@ private static function icuPairToDate(array $pair): string --$seconds; } - $datetime = \DateTimeImmutable::createFromFormat('U', $seconds, new \DateTimeZone('Etc/UTC')); + // Note: Unlike the XML files, the date pair is already in UTC. + $datetime = \DateTimeImmutable::createFromFormat('U', (string) $seconds, new \DateTimeZone('Etc/UTC')); if (false === $datetime) { throw new \RuntimeException('Unable to parse ICU milliseconds pair.'); } - return $datetime->format('Y-m-d'); + return $datetime->format('Y-m-d\TH:i:s'); } } diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/meta.php b/src/Symfony/Component/Intl/Resources/data/currencies/meta.php index f06b1ed1120fb..d28b74df7d85d 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/meta.php +++ b/src/Symfony/Component/Intl/Resources/data/currencies/meta.php @@ -740,302 +740,302 @@ 'Map' => [ 'AC' => [ 'SHP' => [ - 'from' => '1976-01-01', + 'from' => '1976-01-01T00:00:00', ], ], 'AD' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'ESP' => [ - 'from' => '1873-01-01', - 'to' => '2002-02-28', + 'from' => '1873-01-01T00:00:00', + 'to' => '2002-02-28T23:59:59', ], 'FRF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], 'ADP' => [ - 'from' => '1936-01-01', - 'to' => '2001-12-31', + 'from' => '1936-01-01T00:00:00', + 'to' => '2001-12-31T23:59:59', ], ], 'AE' => [ 'AED' => [ - 'from' => '1973-05-19', + 'from' => '1973-05-19T00:00:00', ], ], 'AF' => [ 'AFN' => [ - 'from' => '2002-10-07', + 'from' => '2002-10-07T00:00:00', ], 'AFA' => [ - 'from' => '1927-03-14', - 'to' => '2002-12-31', + 'from' => '1927-03-14T00:00:00', + 'to' => '2002-12-31T23:59:59', ], ], 'AG' => [ 'XCD' => [ - 'from' => '1965-10-06', + 'from' => '1965-10-06T00:00:00', ], ], 'AI' => [ 'XCD' => [ - 'from' => '1965-10-06', + 'from' => '1965-10-06T00:00:00', ], ], 'AL' => [ 'ALL' => [ - 'from' => '1965-08-16', + 'from' => '1965-08-16T00:00:00', ], 'ALK' => [ - 'from' => '1946-11-01', - 'to' => '1965-08-16', + 'from' => '1946-11-01T00:00:00', + 'to' => '1965-08-16T23:59:59', ], ], 'AM' => [ 'AMD' => [ - 'from' => '1993-11-22', + 'from' => '1993-11-22T00:00:00', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1993-11-22', + 'from' => '1991-12-25T00:00:00', + 'to' => '1993-11-22T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1991-12-25', + 'from' => '1961-01-01T00:00:00', + 'to' => '1991-12-25T23:59:59', ], ], 'AO' => [ 'AOA' => [ - 'from' => '1999-12-13', + 'from' => '1999-12-13T00:00:00', ], 'AOR' => [ - 'from' => '1995-07-01', - 'to' => '2000-02-01', + 'from' => '1995-07-01T00:00:00', + 'to' => '2000-02-01T23:59:59', ], 'AON' => [ - 'from' => '1990-09-25', - 'to' => '2000-02-01', + 'from' => '1990-09-25T00:00:00', + 'to' => '2000-02-01T23:59:59', ], 'AOK' => [ - 'from' => '1977-01-08', - 'to' => '1991-03-01', + 'from' => '1977-01-08T00:00:00', + 'to' => '1991-03-01T23:59:59', ], ], 'AQ' => [], 'AR' => [ 'ARS' => [ - 'from' => '1992-01-01', + 'from' => '1992-01-01T00:00:00', ], 'ARA' => [ - 'from' => '1985-06-14', - 'to' => '1992-01-01', + 'from' => '1985-06-14T00:00:00', + 'to' => '1992-01-01T23:59:59', ], 'ARP' => [ - 'from' => '1983-06-01', - 'to' => '1985-06-14', + 'from' => '1983-06-01T00:00:00', + 'to' => '1985-06-14T23:59:59', ], 'ARL' => [ - 'from' => '1970-01-01', - 'to' => '1983-06-01', + 'from' => '1970-01-01T00:00:00', + 'to' => '1983-06-01T23:59:59', ], 'ARM' => [ - 'from' => '1881-11-05', - 'to' => '1970-01-01', + 'from' => '1881-11-05T00:00:00', + 'to' => '1970-01-01T23:59:59', ], ], 'AS' => [ 'USD' => [ - 'from' => '1904-07-16', + 'from' => '1904-07-16T00:00:00', ], ], 'AT' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'ATS' => [ - 'from' => '1947-12-04', - 'to' => '2002-02-28', + 'from' => '1947-12-04T00:00:00', + 'to' => '2002-02-28T23:59:59', ], ], 'AU' => [ 'AUD' => [ - 'from' => '1966-02-14', + 'from' => '1966-02-14T00:00:00', ], ], 'AW' => [ 'AWG' => [ - 'from' => '1986-01-01', + 'from' => '1986-01-01T00:00:00', ], 'ANG' => [ - 'from' => '1940-05-10', - 'to' => '1986-01-01', + 'from' => '1940-05-10T00:00:00', + 'to' => '1986-01-01T23:59:59', ], ], 'AX' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], ], 'AZ' => [ 'AZN' => [ - 'from' => '2006-01-01', + 'from' => '2006-01-01T00:00:00', ], 'AZM' => [ - 'from' => '1993-11-22', - 'to' => '2006-12-31', + 'from' => '1993-11-22T00:00:00', + 'to' => '2006-12-31T23:59:59', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1994-01-01', + 'from' => '1991-12-25T00:00:00', + 'to' => '1994-01-01T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1991-12-25', + 'from' => '1961-01-01T00:00:00', + 'to' => '1991-12-25T23:59:59', ], ], 'BA' => [ 'BAM' => [ - 'from' => '1995-01-01', + 'from' => '1995-01-01T00:00:00', ], 'BAN' => [ - 'from' => '1994-08-15', - 'to' => '1997-07-01', + 'from' => '1994-08-15T00:00:00', + 'to' => '1997-07-01T23:59:59', ], 'BAD' => [ - 'from' => '1992-07-01', - 'to' => '1994-08-15', + 'from' => '1992-07-01T00:00:00', + 'to' => '1994-08-15T23:59:59', ], 'YUR' => [ - 'from' => '1992-07-01', - 'to' => '1993-10-01', + 'from' => '1992-07-01T00:00:00', + 'to' => '1993-10-01T23:59:59', ], 'YUN' => [ - 'from' => '1990-01-01', - 'to' => '1992-07-01', + 'from' => '1990-01-01T00:00:00', + 'to' => '1992-07-01T23:59:59', ], 'YUD' => [ - 'from' => '1966-01-01', - 'to' => '1990-01-01', + 'from' => '1966-01-01T00:00:00', + 'to' => '1990-01-01T23:59:59', ], ], 'BB' => [ 'BBD' => [ - 'from' => '1973-12-03', + 'from' => '1973-12-03T00:00:00', ], 'XCD' => [ - 'from' => '1965-10-06', - 'to' => '1973-12-03', + 'from' => '1965-10-06T00:00:00', + 'to' => '1973-12-03T23:59:59', ], ], 'BD' => [ 'BDT' => [ - 'from' => '1972-01-01', + 'from' => '1972-01-01T00:00:00', ], 'PKR' => [ - 'from' => '1948-04-01', - 'to' => '1972-01-01', + 'from' => '1948-04-01T00:00:00', + 'to' => '1972-01-01T23:59:59', ], 'INR' => [ - 'from' => '1835-08-17', - 'to' => '1948-04-01', + 'from' => '1835-08-17T00:00:00', + 'to' => '1948-04-01T23:59:59', ], ], 'BE' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'BEF' => [ - 'from' => '1831-02-07', - 'to' => '2002-02-28', + 'from' => '1831-02-07T00:00:00', + 'to' => '2002-02-28T23:59:59', ], 'NLG' => [ - 'from' => '1816-12-15', - 'to' => '1831-02-07', + 'from' => '1816-12-15T00:00:00', + 'to' => '1831-02-07T23:59:59', ], 'BEL' => [ - 'from' => '1970-01-01', + 'from' => '1970-01-01T00:00:00', 'tender' => false, - 'to' => '1990-03-05', + 'to' => '1990-03-05T23:59:59', ], 'BEC' => [ - 'from' => '1970-01-01', + 'from' => '1970-01-01T00:00:00', 'tender' => false, - 'to' => '1990-03-05', + 'to' => '1990-03-05T23:59:59', ], ], 'BF' => [ 'XOF' => [ - 'from' => '1984-08-04', + 'from' => '1984-08-04T00:00:00', ], ], 'BG' => [ 'BGN' => [ - 'from' => '1999-07-05', + 'from' => '1999-07-05T00:00:00', ], 'BGL' => [ - 'from' => '1962-01-01', - 'to' => '1999-07-05', + 'from' => '1962-01-01T00:00:00', + 'to' => '1999-07-05T23:59:59', ], 'BGM' => [ - 'from' => '1952-05-12', - 'to' => '1962-01-01', + 'from' => '1952-05-12T00:00:00', + 'to' => '1962-01-01T23:59:59', ], 'BGO' => [ - 'from' => '1879-07-08', - 'to' => '1952-05-12', + 'from' => '1879-07-08T00:00:00', + 'to' => '1952-05-12T23:59:59', ], ], 'BH' => [ 'BHD' => [ - 'from' => '1965-10-16', + 'from' => '1965-10-16T00:00:00', ], ], 'BI' => [ 'BIF' => [ - 'from' => '1964-05-19', + 'from' => '1964-05-19T00:00:00', ], ], 'BJ' => [ 'XOF' => [ - 'from' => '1975-11-30', + 'from' => '1975-11-30T00:00:00', ], ], 'BL' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'BM' => [ 'BMD' => [ - 'from' => '1970-02-06', + 'from' => '1970-02-06T00:00:00', ], ], 'BN' => [ 'BND' => [ - 'from' => '1967-06-12', + 'from' => '1967-06-12T00:00:00', ], 'MYR' => [ - 'from' => '1963-09-16', - 'to' => '1967-06-12', + 'from' => '1963-09-16T00:00:00', + 'to' => '1967-06-12T23:59:59', ], ], 'BO' => [ 'BOB' => [ - 'from' => '1987-01-01', + 'from' => '1987-01-01T00:00:00', ], 'BOP' => [ - 'from' => '1963-01-01', - 'to' => '1986-12-31', + 'from' => '1963-01-01T00:00:00', + 'to' => '1986-12-31T23:59:59', ], 'BOL' => [ - 'from' => '1863-06-23', - 'to' => '1963-01-01', + 'from' => '1863-06-23T00:00:00', + 'to' => '1963-01-01T23:59:59', ], 'BOV' => [ 'tender' => false, @@ -1043,137 +1043,137 @@ ], 'BQ' => [ 'USD' => [ - 'from' => '2011-01-01', + 'from' => '2011-01-01T00:00:00', ], 'ANG' => [ - 'from' => '2010-10-10', - 'to' => '2011-01-01', + 'from' => '2010-10-10T00:00:00', + 'to' => '2011-01-01T23:59:59', ], ], 'BR' => [ 'BRL' => [ - 'from' => '1994-07-01', + 'from' => '1994-07-01T00:00:00', ], 'BRR' => [ - 'from' => '1993-08-01', - 'to' => '1994-07-01', + 'from' => '1993-08-01T00:00:00', + 'to' => '1994-07-01T23:59:59', ], 'BRE' => [ - 'from' => '1990-03-16', - 'to' => '1993-08-01', + 'from' => '1990-03-16T00:00:00', + 'to' => '1993-08-01T23:59:59', ], 'BRN' => [ - 'from' => '1989-01-15', - 'to' => '1990-03-16', + 'from' => '1989-01-15T00:00:00', + 'to' => '1990-03-16T23:59:59', ], 'BRC' => [ - 'from' => '1986-02-28', - 'to' => '1989-01-15', + 'from' => '1986-02-28T00:00:00', + 'to' => '1989-01-15T23:59:59', ], 'BRB' => [ - 'from' => '1967-02-13', - 'to' => '1986-02-28', + 'from' => '1967-02-13T00:00:00', + 'to' => '1986-02-28T23:59:59', ], 'BRZ' => [ - 'from' => '1942-11-01', - 'to' => '1967-02-13', + 'from' => '1942-11-01T00:00:00', + 'to' => '1967-02-13T23:59:59', ], ], 'BS' => [ 'BSD' => [ - 'from' => '1966-05-25', + 'from' => '1966-05-25T00:00:00', ], ], 'BT' => [ 'BTN' => [ - 'from' => '1974-04-16', + 'from' => '1974-04-16T00:00:00', ], 'INR' => [ - 'from' => '1907-01-01', + 'from' => '1907-01-01T00:00:00', ], ], 'BU' => [ 'BUK' => [ - 'from' => '1952-07-01', - 'to' => '1989-06-18', + 'from' => '1952-07-01T00:00:00', + 'to' => '1989-06-18T23:59:59', ], ], 'BV' => [ 'NOK' => [ - 'from' => '1905-06-07', + 'from' => '1905-06-07T00:00:00', ], ], 'BW' => [ 'BWP' => [ - 'from' => '1976-08-23', + 'from' => '1976-08-23T00:00:00', ], 'ZAR' => [ - 'from' => '1961-02-14', - 'to' => '1976-08-23', + 'from' => '1961-02-14T00:00:00', + 'to' => '1976-08-23T23:59:59', ], ], 'BY' => [ 'BYN' => [ - 'from' => '2016-07-01', + 'from' => '2016-07-01T00:00:00', ], 'BYR' => [ - 'from' => '2000-01-01', - 'to' => '2017-01-01', + 'from' => '2000-01-01T00:00:00', + 'to' => '2017-01-01T23:59:59', ], 'BYB' => [ - 'from' => '1994-08-01', - 'to' => '2000-12-31', + 'from' => '1994-08-01T00:00:00', + 'to' => '2000-12-31T23:59:59', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1994-11-08', + 'from' => '1991-12-25T00:00:00', + 'to' => '1994-11-08T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1991-12-25', + 'from' => '1961-01-01T00:00:00', + 'to' => '1991-12-25T23:59:59', ], ], 'BZ' => [ 'BZD' => [ - 'from' => '1974-01-01', + 'from' => '1974-01-01T00:00:00', ], ], 'CA' => [ 'CAD' => [ - 'from' => '1858-01-01', + 'from' => '1858-01-01T00:00:00', ], ], 'CC' => [ 'AUD' => [ - 'from' => '1966-02-14', + 'from' => '1966-02-14T00:00:00', ], ], 'CD' => [ 'CDF' => [ - 'from' => '1998-07-01', + 'from' => '1998-07-01T00:00:00', ], 'ZRN' => [ - 'from' => '1993-11-01', - 'to' => '1998-07-01', + 'from' => '1993-11-01T00:00:00', + 'to' => '1998-07-01T23:59:59', ], 'ZRZ' => [ - 'from' => '1971-10-27', - 'to' => '1993-11-01', + 'from' => '1971-10-27T00:00:00', + 'to' => '1993-11-01T23:59:59', ], ], 'CF' => [ 'XAF' => [ - 'from' => '1993-01-01', + 'from' => '1993-01-01T00:00:00', ], ], 'CG' => [ 'XAF' => [ - 'from' => '1993-01-01', + 'from' => '1993-01-01T00:00:00', ], ], 'CH' => [ 'CHF' => [ - 'from' => '1799-03-17', + 'from' => '1799-03-17T00:00:00', ], 'CHE' => [ 'tender' => false, @@ -1184,21 +1184,21 @@ ], 'CI' => [ 'XOF' => [ - 'from' => '1958-12-04', + 'from' => '1958-12-04T00:00:00', ], ], 'CK' => [ 'NZD' => [ - 'from' => '1967-07-10', + 'from' => '1967-07-10T00:00:00', ], ], 'CL' => [ 'CLP' => [ - 'from' => '1975-09-29', + 'from' => '1975-09-29T00:00:00', ], 'CLE' => [ - 'from' => '1960-01-01', - 'to' => '1975-09-29', + 'from' => '1960-01-01T00:00:00', + 'to' => '1975-09-29T23:59:59', ], 'CLF' => [ 'tender' => false, @@ -1206,26 +1206,26 @@ ], 'CM' => [ 'XAF' => [ - 'from' => '1973-04-01', + 'from' => '1973-04-01T00:00:00', ], ], 'CN' => [ 'CNY' => [ - 'from' => '1953-03-01', + 'from' => '1953-03-01T00:00:00', ], 'CNX' => [ - 'from' => '1979-01-01', + 'from' => '1979-01-01T00:00:00', 'tender' => false, - 'to' => '1998-12-31', + 'to' => '1998-12-31T23:59:59', ], 'CNH' => [ - 'from' => '2010-07-19', + 'from' => '2010-07-19T00:00:00', 'tender' => false, ], ], 'CO' => [ 'COP' => [ - 'from' => '1905-01-01', + 'from' => '1905-01-01T00:00:00', ], 'COU' => [ 'tender' => false, @@ -1234,899 +1234,899 @@ 'CP' => [], 'CR' => [ 'CRC' => [ - 'from' => '1896-10-26', + 'from' => '1896-10-26T00:00:00', ], ], 'CS' => [ 'CSD' => [ - 'from' => '2002-05-15', - 'to' => '2006-06-03', + 'from' => '2002-05-15T00:00:00', + 'to' => '2006-06-03T23:59:59', ], 'EUR' => [ - 'from' => '2003-02-04', - 'to' => '2006-06-03', + 'from' => '2003-02-04T00:00:00', + 'to' => '2006-06-03T23:59:59', ], 'YUM' => [ - 'from' => '1994-01-24', - 'to' => '2002-05-15', + 'from' => '1994-01-24T00:00:00', + 'to' => '2002-05-15T23:59:59', ], ], 'CU' => [ 'CUP' => [ - 'from' => '1859-01-01', + 'from' => '1859-01-01T00:00:00', ], 'CUC' => [ - 'from' => '1994-01-01', - 'to' => '2021-01-01', + 'from' => '1994-01-01T00:00:00', + 'to' => '2021-01-01T23:59:59', ], 'USD' => [ - 'from' => '1899-01-01', - 'to' => '1959-01-01', + 'from' => '1899-01-01T00:00:00', + 'to' => '1959-01-01T23:59:59', ], ], 'CV' => [ 'CVE' => [ - 'from' => '1914-01-01', + 'from' => '1914-01-01T00:00:00', ], 'PTE' => [ - 'from' => '1911-05-22', - 'to' => '1975-07-05', + 'from' => '1911-05-22T00:00:00', + 'to' => '1975-07-05T23:59:59', ], ], 'CW' => [ 'XCG' => [ - 'from' => '2025-03-31', + 'from' => '2025-03-31T04:00:00', ], 'ANG' => [ - 'from' => '2010-10-10', - 'to' => '2025-07-01', + 'from' => '2010-10-10T00:00:00', + 'to' => '2025-07-01T03:59:59', ], ], 'CX' => [ 'AUD' => [ - 'from' => '1966-02-14', + 'from' => '1966-02-14T00:00:00', ], ], 'CY' => [ 'EUR' => [ - 'from' => '2008-01-01', + 'from' => '2008-01-01T00:00:00', ], 'CYP' => [ - 'from' => '1914-09-10', - 'to' => '2008-01-31', + 'from' => '1914-09-10T00:00:00', + 'to' => '2008-01-31T23:59:59', ], ], 'CZ' => [ 'CZK' => [ - 'from' => '1993-01-01', + 'from' => '1993-01-01T00:00:00', ], 'CSK' => [ - 'from' => '1953-06-01', - 'to' => '1993-03-01', + 'from' => '1953-06-01T00:00:00', + 'to' => '1993-03-01T23:59:59', ], ], 'DD' => [ 'DDM' => [ - 'from' => '1948-07-20', - 'to' => '1990-10-02', + 'from' => '1948-07-20T00:00:00', + 'to' => '1990-10-02T23:59:59', ], ], 'DE' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'DEM' => [ - 'from' => '1948-06-20', - 'to' => '2002-02-28', + 'from' => '1948-06-20T00:00:00', + 'to' => '2002-02-28T23:59:59', ], ], 'DG' => [ 'USD' => [ - 'from' => '1965-11-08', + 'from' => '1965-11-08T00:00:00', ], ], 'DJ' => [ 'DJF' => [ - 'from' => '1977-06-27', + 'from' => '1977-06-27T00:00:00', ], ], 'DK' => [ 'DKK' => [ - 'from' => '1873-05-27', + 'from' => '1873-05-27T00:00:00', ], ], 'DM' => [ 'XCD' => [ - 'from' => '1965-10-06', + 'from' => '1965-10-06T00:00:00', ], ], 'DO' => [ 'DOP' => [ - 'from' => '1947-10-01', + 'from' => '1947-10-01T00:00:00', ], 'USD' => [ - 'from' => '1905-06-21', - 'to' => '1947-10-01', + 'from' => '1905-06-21T00:00:00', + 'to' => '1947-10-01T23:59:59', ], ], 'DZ' => [ 'DZD' => [ - 'from' => '1964-04-01', + 'from' => '1964-04-01T00:00:00', ], ], 'EA' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], ], 'EC' => [ 'USD' => [ - 'from' => '2000-10-02', + 'from' => '2000-10-02T00:00:00', ], 'ECS' => [ - 'from' => '1884-04-01', - 'to' => '2000-10-02', + 'from' => '1884-04-01T00:00:00', + 'to' => '2000-10-02T23:59:59', ], 'ECV' => [ - 'from' => '1993-05-23', + 'from' => '1993-05-23T00:00:00', 'tender' => false, - 'to' => '2000-01-09', + 'to' => '2000-01-09T23:59:59', ], ], 'EE' => [ 'EUR' => [ - 'from' => '2011-01-01', + 'from' => '2011-01-01T00:00:00', ], 'EEK' => [ - 'from' => '1992-06-21', - 'to' => '2010-12-31', + 'from' => '1992-06-21T00:00:00', + 'to' => '2010-12-31T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1992-06-20', + 'from' => '1961-01-01T00:00:00', + 'to' => '1992-06-20T23:59:59', ], ], 'EG' => [ 'EGP' => [ - 'from' => '1885-11-14', + 'from' => '1885-11-14T00:00:00', ], ], 'EH' => [ 'MAD' => [ - 'from' => '1976-02-26', + 'from' => '1976-02-26T00:00:00', ], ], 'ER' => [ 'ERN' => [ - 'from' => '1997-11-08', + 'from' => '1997-11-08T00:00:00', ], 'ETB' => [ - 'from' => '1993-05-24', - 'to' => '1997-11-08', + 'from' => '1993-05-24T00:00:00', + 'to' => '1997-11-08T23:59:59', ], ], 'ES' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'ESP' => [ - 'from' => '1868-10-19', - 'to' => '2002-02-28', + 'from' => '1868-10-19T00:00:00', + 'to' => '2002-02-28T23:59:59', ], 'ESA' => [ - 'from' => '1978-01-01', + 'from' => '1978-01-01T00:00:00', 'tender' => false, - 'to' => '1981-12-31', + 'to' => '1981-12-31T23:59:59', ], 'ESB' => [ - 'from' => '1975-01-01', + 'from' => '1975-01-01T00:00:00', 'tender' => false, - 'to' => '1994-12-31', + 'to' => '1994-12-31T23:59:59', ], ], 'ET' => [ 'ETB' => [ - 'from' => '1976-09-15', + 'from' => '1976-09-15T00:00:00', ], ], 'EU' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'XEU' => [ - 'from' => '1979-01-01', + 'from' => '1979-01-01T00:00:00', 'tender' => false, - 'to' => '1998-12-31', + 'to' => '1998-12-31T23:59:59', ], ], 'FI' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FIM' => [ - 'from' => '1963-01-01', - 'to' => '2002-02-28', + 'from' => '1963-01-01T00:00:00', + 'to' => '2002-02-28T23:59:59', ], ], 'FJ' => [ 'FJD' => [ - 'from' => '1969-01-13', + 'from' => '1969-01-13T00:00:00', ], ], 'FK' => [ 'FKP' => [ - 'from' => '1901-01-01', + 'from' => '1901-01-01T00:00:00', ], ], 'FM' => [ 'USD' => [ - 'from' => '1944-01-01', + 'from' => '1944-01-01T00:00:00', ], 'JPY' => [ - 'from' => '1914-10-03', - 'to' => '1944-01-01', + 'from' => '1914-10-03T00:00:00', + 'to' => '1944-01-01T23:59:59', ], ], 'FO' => [ 'DKK' => [ - 'from' => '1948-01-01', + 'from' => '1948-01-01T00:00:00', ], ], 'FR' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'GA' => [ 'XAF' => [ - 'from' => '1993-01-01', + 'from' => '1993-01-01T00:00:00', ], ], 'GB' => [ 'GBP' => [ - 'from' => '1694-07-27', + 'from' => '1694-07-27T00:00:00', ], ], 'GD' => [ 'XCD' => [ - 'from' => '1967-02-27', + 'from' => '1967-02-27T00:00:00', ], ], 'GE' => [ 'GEL' => [ - 'from' => '1995-09-23', + 'from' => '1995-09-23T00:00:00', ], 'GEK' => [ - 'from' => '1993-04-05', - 'to' => '1995-09-25', + 'from' => '1993-04-05T00:00:00', + 'to' => '1995-09-25T23:59:59', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1993-06-11', + 'from' => '1991-12-25T00:00:00', + 'to' => '1993-06-11T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1991-12-25', + 'from' => '1961-01-01T00:00:00', + 'to' => '1991-12-25T23:59:59', ], ], 'GF' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'GG' => [ 'GBP' => [ - 'from' => '1830-01-01', + 'from' => '1830-01-01T00:00:00', ], ], 'GH' => [ 'GHS' => [ - 'from' => '2007-07-03', + 'from' => '2007-07-03T00:00:00', ], 'GHC' => [ - 'from' => '1979-03-09', - 'to' => '2007-12-31', + 'from' => '1979-03-09T00:00:00', + 'to' => '2007-12-31T23:59:59', ], ], 'GI' => [ 'GIP' => [ - 'from' => '1713-01-01', + 'from' => '1713-01-01T00:00:00', ], ], 'GL' => [ 'DKK' => [ - 'from' => '1873-05-27', + 'from' => '1873-05-27T00:00:00', ], ], 'GM' => [ 'GMD' => [ - 'from' => '1971-07-01', + 'from' => '1971-07-01T00:00:00', ], ], 'GN' => [ 'GNF' => [ - 'from' => '1986-01-06', + 'from' => '1986-01-06T00:00:00', ], 'GNS' => [ - 'from' => '1972-10-02', - 'to' => '1986-01-06', + 'from' => '1972-10-02T00:00:00', + 'to' => '1986-01-06T23:59:59', ], ], 'GP' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'GQ' => [ 'XAF' => [ - 'from' => '1993-01-01', + 'from' => '1993-01-01T00:00:00', ], 'GQE' => [ - 'from' => '1975-07-07', - 'to' => '1986-06-01', + 'from' => '1975-07-07T00:00:00', + 'to' => '1986-06-01T23:59:59', ], ], 'GR' => [ 'EUR' => [ - 'from' => '2001-01-01', + 'from' => '2001-01-01T00:00:00', ], 'GRD' => [ - 'from' => '1954-05-01', - 'to' => '2002-02-28', + 'from' => '1954-05-01T00:00:00', + 'to' => '2002-02-28T23:59:59', ], ], 'GS' => [ 'GBP' => [ - 'from' => '1908-01-01', + 'from' => '1908-01-01T00:00:00', ], ], 'GT' => [ 'GTQ' => [ - 'from' => '1925-05-27', + 'from' => '1925-05-27T00:00:00', ], ], 'GU' => [ 'USD' => [ - 'from' => '1944-08-21', + 'from' => '1944-08-21T00:00:00', ], ], 'GW' => [ 'XOF' => [ - 'from' => '1997-03-31', + 'from' => '1997-03-31T00:00:00', ], 'GWP' => [ - 'from' => '1976-02-28', - 'to' => '1997-03-31', + 'from' => '1976-02-28T00:00:00', + 'to' => '1997-03-31T23:59:59', ], 'GWE' => [ - 'from' => '1914-01-01', - 'to' => '1976-02-28', + 'from' => '1914-01-01T00:00:00', + 'to' => '1976-02-28T23:59:59', ], ], 'GY' => [ 'GYD' => [ - 'from' => '1966-05-26', + 'from' => '1966-05-26T00:00:00', ], ], 'HK' => [ 'HKD' => [ - 'from' => '1895-02-02', + 'from' => '1895-02-02T00:00:00', ], ], 'HM' => [ 'AUD' => [ - 'from' => '1967-02-16', + 'from' => '1967-02-16T00:00:00', ], ], 'HN' => [ 'HNL' => [ - 'from' => '1926-04-03', + 'from' => '1926-04-03T00:00:00', ], ], 'HR' => [ 'EUR' => [ - 'from' => '2022-12-31', + 'from' => '2022-12-31T23:00:00', ], 'HRK' => [ - 'from' => '1994-05-30', - 'to' => '2023-01-14', + 'from' => '1994-05-30T00:00:00', + 'to' => '2023-01-14T22:59:59', ], 'HRD' => [ - 'from' => '1991-12-23', - 'to' => '1995-01-01', + 'from' => '1991-12-23T00:00:00', + 'to' => '1995-01-01T23:59:59', ], 'YUN' => [ - 'from' => '1990-01-01', - 'to' => '1991-12-23', + 'from' => '1990-01-01T00:00:00', + 'to' => '1991-12-23T23:59:59', ], 'YUD' => [ - 'from' => '1966-01-01', - 'to' => '1990-01-01', + 'from' => '1966-01-01T00:00:00', + 'to' => '1990-01-01T23:59:59', ], ], 'HT' => [ 'HTG' => [ - 'from' => '1872-08-26', + 'from' => '1872-08-26T00:00:00', ], 'USD' => [ - 'from' => '1915-01-01', + 'from' => '1915-01-01T00:00:00', ], ], 'HU' => [ 'HUF' => [ - 'from' => '1946-07-23', + 'from' => '1946-07-23T00:00:00', ], ], 'IC' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], ], 'ID' => [ 'IDR' => [ - 'from' => '1965-12-13', + 'from' => '1965-12-13T00:00:00', ], ], 'IE' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'IEP' => [ - 'from' => '1922-01-01', - 'to' => '2002-02-09', + 'from' => '1922-01-01T00:00:00', + 'to' => '2002-02-09T23:59:59', ], 'GBP' => [ - 'from' => '1800-01-01', - 'to' => '1922-01-01', + 'from' => '1800-01-01T00:00:00', + 'to' => '1922-01-01T23:59:59', ], ], 'IL' => [ 'ILS' => [ - 'from' => '1985-09-04', + 'from' => '1985-09-04T00:00:00', ], 'ILR' => [ - 'from' => '1980-02-22', - 'to' => '1985-09-04', + 'from' => '1980-02-22T00:00:00', + 'to' => '1985-09-04T23:59:59', ], 'ILP' => [ - 'from' => '1948-08-16', - 'to' => '1980-02-22', + 'from' => '1948-08-16T00:00:00', + 'to' => '1980-02-22T23:59:59', ], ], 'IM' => [ 'GBP' => [ - 'from' => '1840-01-03', + 'from' => '1840-01-03T00:00:00', ], ], 'IN' => [ 'INR' => [ - 'from' => '1835-08-17', + 'from' => '1835-08-17T00:00:00', ], ], 'IO' => [ 'USD' => [ - 'from' => '1965-11-08', + 'from' => '1965-11-08T00:00:00', ], ], 'IQ' => [ 'IQD' => [ - 'from' => '1931-04-19', + 'from' => '1931-04-19T00:00:00', ], 'EGP' => [ - 'from' => '1920-11-11', - 'to' => '1931-04-19', + 'from' => '1920-11-11T00:00:00', + 'to' => '1931-04-19T23:59:59', ], 'INR' => [ - 'from' => '1920-11-11', - 'to' => '1931-04-19', + 'from' => '1920-11-11T00:00:00', + 'to' => '1931-04-19T23:59:59', ], ], 'IR' => [ 'IRR' => [ - 'from' => '1932-05-13', + 'from' => '1932-05-13T00:00:00', ], ], 'IS' => [ 'ISK' => [ - 'from' => '1981-01-01', + 'from' => '1981-01-01T00:00:00', ], 'ISJ' => [ - 'from' => '1918-12-01', - 'to' => '1981-01-01', + 'from' => '1918-12-01T00:00:00', + 'to' => '1981-01-01T23:59:59', ], 'DKK' => [ - 'from' => '1873-05-27', - 'to' => '1918-12-01', + 'from' => '1873-05-27T00:00:00', + 'to' => '1918-12-01T23:59:59', ], ], 'IT' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'ITL' => [ - 'from' => '1862-08-24', - 'to' => '2002-02-28', + 'from' => '1862-08-24T00:00:00', + 'to' => '2002-02-28T23:59:59', ], ], 'JE' => [ 'GBP' => [ - 'from' => '1837-01-01', + 'from' => '1837-01-01T00:00:00', ], ], 'JM' => [ 'JMD' => [ - 'from' => '1969-09-08', + 'from' => '1969-09-08T00:00:00', ], ], 'JO' => [ 'JOD' => [ - 'from' => '1950-07-01', + 'from' => '1950-07-01T00:00:00', ], ], 'JP' => [ 'JPY' => [ - 'from' => '1871-06-01', + 'from' => '1871-06-01T00:00:00', ], ], 'KE' => [ 'KES' => [ - 'from' => '1966-09-14', + 'from' => '1966-09-14T00:00:00', ], ], 'KG' => [ 'KGS' => [ - 'from' => '1993-05-10', + 'from' => '1993-05-10T00:00:00', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1993-05-10', + 'from' => '1991-12-25T00:00:00', + 'to' => '1993-05-10T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1991-12-25', + 'from' => '1961-01-01T00:00:00', + 'to' => '1991-12-25T23:59:59', ], ], 'KH' => [ 'KHR' => [ - 'from' => '1980-03-20', + 'from' => '1980-03-20T00:00:00', ], ], 'KI' => [ 'AUD' => [ - 'from' => '1966-02-14', + 'from' => '1966-02-14T00:00:00', ], ], 'KM' => [ 'KMF' => [ - 'from' => '1975-07-06', + 'from' => '1975-07-06T00:00:00', ], ], 'KN' => [ 'XCD' => [ - 'from' => '1965-10-06', + 'from' => '1965-10-06T00:00:00', ], ], 'KP' => [ 'KPW' => [ - 'from' => '1959-04-17', + 'from' => '1959-04-17T00:00:00', ], ], 'KR' => [ 'KRW' => [ - 'from' => '1962-06-10', + 'from' => '1962-06-10T00:00:00', ], 'KRH' => [ - 'from' => '1953-02-15', - 'to' => '1962-06-10', + 'from' => '1953-02-15T00:00:00', + 'to' => '1962-06-10T23:59:59', ], 'KRO' => [ - 'from' => '1945-08-15', - 'to' => '1953-02-15', + 'from' => '1945-08-15T00:00:00', + 'to' => '1953-02-15T23:59:59', ], ], 'KW' => [ 'KWD' => [ - 'from' => '1961-04-01', + 'from' => '1961-04-01T00:00:00', ], ], 'KY' => [ 'KYD' => [ - 'from' => '1971-01-01', + 'from' => '1971-01-01T00:00:00', ], 'JMD' => [ - 'from' => '1969-09-08', - 'to' => '1971-01-01', + 'from' => '1969-09-08T00:00:00', + 'to' => '1971-01-01T23:59:59', ], ], 'KZ' => [ 'KZT' => [ - 'from' => '1993-11-05', + 'from' => '1993-11-05T00:00:00', ], ], 'LA' => [ 'LAK' => [ - 'from' => '1979-12-10', + 'from' => '1979-12-10T00:00:00', ], ], 'LB' => [ 'LBP' => [ - 'from' => '1948-02-02', + 'from' => '1948-02-02T00:00:00', ], ], 'LC' => [ 'XCD' => [ - 'from' => '1965-10-06', + 'from' => '1965-10-06T00:00:00', ], ], 'LI' => [ 'CHF' => [ - 'from' => '1921-02-01', + 'from' => '1921-02-01T00:00:00', ], ], 'LK' => [ 'LKR' => [ - 'from' => '1978-05-22', + 'from' => '1978-05-22T00:00:00', ], ], 'LR' => [ 'LRD' => [ - 'from' => '1944-01-01', + 'from' => '1944-01-01T00:00:00', ], ], 'LS' => [ 'ZAR' => [ - 'from' => '1961-02-14', + 'from' => '1961-02-14T00:00:00', ], 'LSL' => [ - 'from' => '1980-01-22', + 'from' => '1980-01-22T00:00:00', ], ], 'LT' => [ 'EUR' => [ - 'from' => '2015-01-01', + 'from' => '2015-01-01T00:00:00', ], 'LTL' => [ - 'from' => '1993-06-25', - 'to' => '2014-12-31', + 'from' => '1993-06-25T00:00:00', + 'to' => '2014-12-31T23:59:59', ], 'LTT' => [ - 'from' => '1992-10-01', - 'to' => '1993-06-25', + 'from' => '1992-10-01T00:00:00', + 'to' => '1993-06-25T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1992-10-01', + 'from' => '1961-01-01T00:00:00', + 'to' => '1992-10-01T23:59:59', ], ], 'LU' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'LUF' => [ - 'from' => '1944-09-04', - 'to' => '2002-02-28', + 'from' => '1944-09-04T00:00:00', + 'to' => '2002-02-28T23:59:59', ], 'LUC' => [ - 'from' => '1970-01-01', + 'from' => '1970-01-01T00:00:00', 'tender' => false, - 'to' => '1990-03-05', + 'to' => '1990-03-05T23:59:59', ], 'LUL' => [ - 'from' => '1970-01-01', + 'from' => '1970-01-01T00:00:00', 'tender' => false, - 'to' => '1990-03-05', + 'to' => '1990-03-05T23:59:59', ], ], 'LV' => [ 'EUR' => [ - 'from' => '2014-01-01', + 'from' => '2014-01-01T00:00:00', ], 'LVL' => [ - 'from' => '1993-06-28', - 'to' => '2013-12-31', + 'from' => '1993-06-28T00:00:00', + 'to' => '2013-12-31T23:59:59', ], 'LVR' => [ - 'from' => '1992-05-07', - 'to' => '1993-10-17', + 'from' => '1992-05-07T00:00:00', + 'to' => '1993-10-17T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1992-07-20', + 'from' => '1961-01-01T00:00:00', + 'to' => '1992-07-20T23:59:59', ], ], 'LY' => [ 'LYD' => [ - 'from' => '1971-09-01', + 'from' => '1971-09-01T00:00:00', ], ], 'MA' => [ 'MAD' => [ - 'from' => '1959-10-17', + 'from' => '1959-10-17T00:00:00', ], 'MAF' => [ - 'from' => '1881-01-01', - 'to' => '1959-10-17', + 'from' => '1881-01-01T00:00:00', + 'to' => '1959-10-17T23:59:59', ], ], 'MC' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], 'MCF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'MD' => [ 'MDL' => [ - 'from' => '1993-11-29', + 'from' => '1993-11-29T00:00:00', ], 'MDC' => [ - 'from' => '1992-06-01', - 'to' => '1993-11-29', + 'from' => '1992-06-01T00:00:00', + 'to' => '1993-11-29T23:59:59', ], ], 'ME' => [ 'EUR' => [ - 'from' => '2002-01-01', + 'from' => '2002-01-01T00:00:00', ], 'DEM' => [ - 'from' => '1999-10-02', - 'to' => '2002-05-15', + 'from' => '1999-10-02T00:00:00', + 'to' => '2002-05-15T23:59:59', ], 'YUM' => [ - 'from' => '1994-01-24', - 'to' => '2002-05-15', + 'from' => '1994-01-24T00:00:00', + 'to' => '2002-05-15T23:59:59', ], ], 'MF' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'MG' => [ 'MGA' => [ - 'from' => '1983-11-01', + 'from' => '1983-11-01T00:00:00', ], 'MGF' => [ - 'from' => '1963-07-01', - 'to' => '2004-12-31', + 'from' => '1963-07-01T00:00:00', + 'to' => '2004-12-31T23:59:59', ], ], 'MH' => [ 'USD' => [ - 'from' => '1944-01-01', + 'from' => '1944-01-01T00:00:00', ], ], 'MK' => [ 'MKD' => [ - 'from' => '1993-05-20', + 'from' => '1993-05-20T00:00:00', ], 'MKN' => [ - 'from' => '1992-04-26', - 'to' => '1993-05-20', + 'from' => '1992-04-26T00:00:00', + 'to' => '1993-05-20T23:59:59', ], ], 'ML' => [ 'XOF' => [ - 'from' => '1958-11-24', - 'to' => '1962-07-02', + 'from' => '1958-11-24T00:00:00', + 'to' => '1962-07-02T23:59:59', ], 'MLF' => [ - 'from' => '1962-07-02', - 'to' => '1984-08-31', + 'from' => '1962-07-02T00:00:00', + 'to' => '1984-08-31T23:59:59', ], ], 'MM' => [ 'MMK' => [ - 'from' => '1989-06-18', + 'from' => '1989-06-18T00:00:00', ], 'BUK' => [ - 'from' => '1952-07-01', - 'to' => '1989-06-18', + 'from' => '1952-07-01T00:00:00', + 'to' => '1989-06-18T23:59:59', ], ], 'MN' => [ 'MNT' => [ - 'from' => '1915-03-01', + 'from' => '1915-03-01T00:00:00', ], ], 'MO' => [ 'MOP' => [ - 'from' => '1901-01-01', + 'from' => '1901-01-01T00:00:00', ], ], 'MP' => [ 'USD' => [ - 'from' => '1944-01-01', + 'from' => '1944-01-01T00:00:00', ], ], 'MQ' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1960-01-01', - 'to' => '2002-02-17', + 'from' => '1960-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'MR' => [ 'MRU' => [ - 'from' => '2018-01-01', + 'from' => '2018-01-01T00:00:00', ], 'MRO' => [ - 'from' => '1973-06-29', - 'to' => '2018-06-30', + 'from' => '1973-06-29T00:00:00', + 'to' => '2018-06-30T23:59:59', ], 'XOF' => [ - 'from' => '1958-11-28', - 'to' => '1973-06-29', + 'from' => '1958-11-28T00:00:00', + 'to' => '1973-06-29T23:59:59', ], ], 'MS' => [ 'XCD' => [ - 'from' => '1967-02-27', + 'from' => '1967-02-27T00:00:00', ], ], 'MT' => [ 'EUR' => [ - 'from' => '2008-01-01', + 'from' => '2008-01-01T00:00:00', ], 'MTL' => [ - 'from' => '1968-06-07', - 'to' => '2008-01-31', + 'from' => '1968-06-07T00:00:00', + 'to' => '2008-01-31T23:59:59', ], 'MTP' => [ - 'from' => '1914-08-13', - 'to' => '1968-06-07', + 'from' => '1914-08-13T00:00:00', + 'to' => '1968-06-07T23:59:59', ], ], 'MU' => [ 'MUR' => [ - 'from' => '1934-04-01', + 'from' => '1934-04-01T00:00:00', ], ], 'MV' => [ 'MVR' => [ - 'from' => '1981-07-01', + 'from' => '1981-07-01T00:00:00', ], 'MVP' => [ - 'from' => '1947-01-01', - 'to' => '1981-07-01', + 'from' => '1947-01-01T00:00:00', + 'to' => '1981-07-01T23:59:59', ], ], 'MW' => [ 'MWK' => [ - 'from' => '1971-02-15', + 'from' => '1971-02-15T00:00:00', ], ], 'MX' => [ 'MXN' => [ - 'from' => '1993-01-01', + 'from' => '1993-01-01T00:00:00', ], 'MXP' => [ - 'from' => '1822-01-01', - 'to' => '1992-12-31', + 'from' => '1822-01-01T00:00:00', + 'to' => '1992-12-31T23:59:59', ], 'MXV' => [ 'tender' => false, @@ -2134,633 +2134,633 @@ ], 'MY' => [ 'MYR' => [ - 'from' => '1963-09-16', + 'from' => '1963-09-16T00:00:00', ], ], 'MZ' => [ 'MZN' => [ - 'from' => '2006-07-01', + 'from' => '2006-07-01T00:00:00', ], 'MZM' => [ - 'from' => '1980-06-16', - 'to' => '2006-12-31', + 'from' => '1980-06-16T00:00:00', + 'to' => '2006-12-31T23:59:59', ], 'MZE' => [ - 'from' => '1975-06-25', - 'to' => '1980-06-16', + 'from' => '1975-06-25T00:00:00', + 'to' => '1980-06-16T23:59:59', ], ], 'NA' => [ 'NAD' => [ - 'from' => '1993-01-01', + 'from' => '1993-01-01T00:00:00', ], 'ZAR' => [ - 'from' => '1961-02-14', + 'from' => '1961-02-14T00:00:00', ], ], 'NC' => [ 'XPF' => [ - 'from' => '1985-01-01', + 'from' => '1985-01-01T00:00:00', ], ], 'NE' => [ 'XOF' => [ - 'from' => '1958-12-19', + 'from' => '1958-12-19T00:00:00', ], ], 'NF' => [ 'AUD' => [ - 'from' => '1966-02-14', + 'from' => '1966-02-14T00:00:00', ], ], 'NG' => [ 'NGN' => [ - 'from' => '1973-01-01', + 'from' => '1973-01-01T00:00:00', ], ], 'NI' => [ 'NIO' => [ - 'from' => '1991-04-30', + 'from' => '1991-04-30T00:00:00', ], 'NIC' => [ - 'from' => '1988-02-15', - 'to' => '1991-04-30', + 'from' => '1988-02-15T00:00:00', + 'to' => '1991-04-30T23:59:59', ], ], 'NL' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'NLG' => [ - 'from' => '1813-01-01', - 'to' => '2002-02-28', + 'from' => '1813-01-01T00:00:00', + 'to' => '2002-02-28T23:59:59', ], ], 'NO' => [ 'NOK' => [ - 'from' => '1905-06-07', + 'from' => '1905-06-07T00:00:00', ], 'SEK' => [ - 'from' => '1873-05-27', - 'to' => '1905-06-07', + 'from' => '1873-05-27T00:00:00', + 'to' => '1905-06-07T23:59:59', ], ], 'NP' => [ 'NPR' => [ - 'from' => '1933-01-01', + 'from' => '1933-01-01T00:00:00', ], 'INR' => [ - 'from' => '1870-01-01', - 'to' => '1966-10-17', + 'from' => '1870-01-01T00:00:00', + 'to' => '1966-10-17T23:59:59', ], ], 'NR' => [ 'AUD' => [ - 'from' => '1966-02-14', + 'from' => '1966-02-14T00:00:00', ], ], 'NU' => [ 'NZD' => [ - 'from' => '1967-07-10', + 'from' => '1967-07-10T00:00:00', ], ], 'NZ' => [ 'NZD' => [ - 'from' => '1967-07-10', + 'from' => '1967-07-10T00:00:00', ], ], 'OM' => [ 'OMR' => [ - 'from' => '1972-11-11', + 'from' => '1972-11-11T00:00:00', ], ], 'PA' => [ 'PAB' => [ - 'from' => '1903-11-04', + 'from' => '1903-11-04T00:00:00', ], 'USD' => [ - 'from' => '1903-11-18', + 'from' => '1903-11-18T00:00:00', ], ], 'PE' => [ 'PEN' => [ - 'from' => '1991-07-01', + 'from' => '1991-07-01T00:00:00', ], 'PEI' => [ - 'from' => '1985-02-01', - 'to' => '1991-07-01', + 'from' => '1985-02-01T00:00:00', + 'to' => '1991-07-01T23:59:59', ], 'PES' => [ - 'from' => '1863-02-14', - 'to' => '1985-02-01', + 'from' => '1863-02-14T00:00:00', + 'to' => '1985-02-01T23:59:59', ], ], 'PF' => [ 'XPF' => [ - 'from' => '1945-12-26', + 'from' => '1945-12-26T00:00:00', ], ], 'PG' => [ 'PGK' => [ - 'from' => '1975-09-16', + 'from' => '1975-09-16T00:00:00', ], 'AUD' => [ - 'from' => '1966-02-14', - 'to' => '1975-09-16', + 'from' => '1966-02-14T00:00:00', + 'to' => '1975-09-16T23:59:59', ], ], 'PH' => [ 'PHP' => [ - 'from' => '1946-07-04', + 'from' => '1946-07-04T00:00:00', ], ], 'PK' => [ 'PKR' => [ - 'from' => '1948-04-01', + 'from' => '1948-04-01T00:00:00', ], 'INR' => [ - 'from' => '1835-08-17', - 'to' => '1947-08-15', + 'from' => '1835-08-17T00:00:00', + 'to' => '1947-08-15T23:59:59', ], ], 'PL' => [ 'PLN' => [ - 'from' => '1995-01-01', + 'from' => '1995-01-01T00:00:00', ], 'PLZ' => [ - 'from' => '1950-10-28', - 'to' => '1994-12-31', + 'from' => '1950-10-28T00:00:00', + 'to' => '1994-12-31T23:59:59', ], ], 'PM' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1972-12-21', - 'to' => '2002-02-17', + 'from' => '1972-12-21T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'PN' => [ 'NZD' => [ - 'from' => '1969-01-13', + 'from' => '1969-01-13T00:00:00', ], ], 'PR' => [ 'USD' => [ - 'from' => '1898-12-10', + 'from' => '1898-12-10T00:00:00', ], 'ESP' => [ - 'from' => '1800-01-01', - 'to' => '1898-12-10', + 'from' => '1800-01-01T00:00:00', + 'to' => '1898-12-10T23:59:59', ], ], 'PS' => [ 'ILS' => [ - 'from' => '1985-09-04', + 'from' => '1985-09-04T00:00:00', ], 'JOD' => [ - 'from' => '1950-07-01', - 'to' => '1967-06-01', + 'from' => '1950-07-01T00:00:00', + 'to' => '1967-06-01T23:59:59', ], 'ILP' => [ - 'from' => '1967-06-01', - 'to' => '1980-02-22', + 'from' => '1967-06-01T00:00:00', + 'to' => '1980-02-22T23:59:59', ], ], 'PT' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'PTE' => [ - 'from' => '1911-05-22', - 'to' => '2002-02-28', + 'from' => '1911-05-22T00:00:00', + 'to' => '2002-02-28T23:59:59', ], ], 'PW' => [ 'USD' => [ - 'from' => '1944-01-01', + 'from' => '1944-01-01T00:00:00', ], ], 'PY' => [ 'PYG' => [ - 'from' => '1943-11-01', + 'from' => '1943-11-01T00:00:00', ], ], 'QA' => [ 'QAR' => [ - 'from' => '1973-05-19', + 'from' => '1973-05-19T00:00:00', ], ], 'RE' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1975-01-01', - 'to' => '2002-02-17', + 'from' => '1975-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'RO' => [ 'RON' => [ - 'from' => '2005-07-01', + 'from' => '2005-07-01T00:00:00', ], 'ROL' => [ - 'from' => '1952-01-28', - 'to' => '2006-12-31', + 'from' => '1952-01-28T00:00:00', + 'to' => '2006-12-31T23:59:59', ], ], 'RS' => [ 'RSD' => [ - 'from' => '2006-10-25', + 'from' => '2006-10-25T00:00:00', ], 'CSD' => [ - 'from' => '2002-05-15', - 'to' => '2006-10-25', + 'from' => '2002-05-15T00:00:00', + 'to' => '2006-10-25T23:59:59', ], 'YUM' => [ - 'from' => '1994-01-24', - 'to' => '2002-05-15', + 'from' => '1994-01-24T00:00:00', + 'to' => '2002-05-15T23:59:59', ], ], 'RU' => [ 'RUB' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1998-12-31', + 'from' => '1991-12-25T00:00:00', + 'to' => '1998-12-31T23:59:59', ], ], 'RW' => [ 'RWF' => [ - 'from' => '1964-05-19', + 'from' => '1964-05-19T00:00:00', ], ], 'SA' => [ 'SAR' => [ - 'from' => '1952-10-22', + 'from' => '1952-10-22T00:00:00', ], ], 'SB' => [ 'SBD' => [ - 'from' => '1977-10-24', + 'from' => '1977-10-24T00:00:00', ], 'AUD' => [ - 'from' => '1966-02-14', - 'to' => '1978-06-30', + 'from' => '1966-02-14T00:00:00', + 'to' => '1978-06-30T23:59:59', ], ], 'SC' => [ 'SCR' => [ - 'from' => '1903-11-01', + 'from' => '1903-11-01T00:00:00', ], ], 'SD' => [ 'SDG' => [ - 'from' => '2007-01-10', + 'from' => '2007-01-10T00:00:00', ], 'SDD' => [ - 'from' => '1992-06-08', - 'to' => '2007-06-30', + 'from' => '1992-06-08T00:00:00', + 'to' => '2007-06-30T23:59:59', ], 'SDP' => [ - 'from' => '1957-04-08', - 'to' => '1998-06-01', + 'from' => '1957-04-08T00:00:00', + 'to' => '1998-06-01T23:59:59', ], 'EGP' => [ - 'from' => '1889-01-19', - 'to' => '1958-01-01', + 'from' => '1889-01-19T00:00:00', + 'to' => '1958-01-01T23:59:59', ], 'GBP' => [ - 'from' => '1889-01-19', - 'to' => '1958-01-01', + 'from' => '1889-01-19T00:00:00', + 'to' => '1958-01-01T23:59:59', ], ], 'SE' => [ 'SEK' => [ - 'from' => '1873-05-27', + 'from' => '1873-05-27T00:00:00', ], ], 'SG' => [ 'SGD' => [ - 'from' => '1967-06-12', + 'from' => '1967-06-12T00:00:00', ], 'MYR' => [ - 'from' => '1963-09-16', - 'to' => '1967-06-12', + 'from' => '1963-09-16T00:00:00', + 'to' => '1967-06-12T23:59:59', ], ], 'SH' => [ 'SHP' => [ - 'from' => '1917-02-15', + 'from' => '1917-02-15T00:00:00', ], ], 'SI' => [ 'EUR' => [ - 'from' => '2007-01-01', + 'from' => '2007-01-01T00:00:00', ], 'SIT' => [ - 'from' => '1992-10-07', - 'to' => '2007-01-14', + 'from' => '1992-10-07T00:00:00', + 'to' => '2007-01-14T23:59:59', ], ], 'SJ' => [ 'NOK' => [ - 'from' => '1905-06-07', + 'from' => '1905-06-07T00:00:00', ], ], 'SK' => [ 'EUR' => [ - 'from' => '2009-01-01', + 'from' => '2009-01-01T00:00:00', ], 'SKK' => [ - 'from' => '1992-12-31', - 'to' => '2009-01-01', + 'from' => '1992-12-31T00:00:00', + 'to' => '2009-01-01T23:59:59', ], 'CSK' => [ - 'from' => '1953-06-01', - 'to' => '1992-12-31', + 'from' => '1953-06-01T00:00:00', + 'to' => '1992-12-31T23:59:59', ], ], 'SL' => [ 'SLE' => [ - 'from' => '2022-07-01', + 'from' => '2022-07-01T00:00:00', ], 'SLL' => [ - 'from' => '1964-08-04', - 'to' => '2023-12-31', + 'from' => '1964-08-04T00:00:00', + 'to' => '2023-12-31T23:59:59', ], 'GBP' => [ - 'from' => '1808-11-30', - 'to' => '1966-02-04', + 'from' => '1808-11-30T00:00:00', + 'to' => '1966-02-04T23:59:59', ], ], 'SM' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'ITL' => [ - 'from' => '1865-12-23', - 'to' => '2001-02-28', + 'from' => '1865-12-23T00:00:00', + 'to' => '2001-02-28T23:59:59', ], ], 'SN' => [ 'XOF' => [ - 'from' => '1959-04-04', + 'from' => '1959-04-04T00:00:00', ], ], 'SO' => [ 'SOS' => [ - 'from' => '1960-07-01', + 'from' => '1960-07-01T00:00:00', ], ], 'SR' => [ 'SRD' => [ - 'from' => '2004-01-01', + 'from' => '2004-01-01T00:00:00', ], 'SRG' => [ - 'from' => '1940-05-10', - 'to' => '2003-12-31', + 'from' => '1940-05-10T00:00:00', + 'to' => '2003-12-31T23:59:59', ], 'NLG' => [ - 'from' => '1815-11-20', - 'to' => '1940-05-10', + 'from' => '1815-11-20T00:00:00', + 'to' => '1940-05-10T23:59:59', ], ], 'SS' => [ 'SSP' => [ - 'from' => '2011-07-18', + 'from' => '2011-07-18T00:00:00', ], 'SDG' => [ - 'from' => '2007-01-10', - 'to' => '2011-09-01', + 'from' => '2007-01-10T00:00:00', + 'to' => '2011-09-01T23:59:59', ], ], 'ST' => [ 'STN' => [ - 'from' => '2018-01-01', + 'from' => '2018-01-01T00:00:00', ], 'STD' => [ - 'from' => '1977-09-08', - 'to' => '2017-12-31', + 'from' => '1977-09-08T00:00:00', + 'to' => '2017-12-31T23:59:59', ], ], 'SU' => [ 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1991-12-25', + 'from' => '1961-01-01T00:00:00', + 'to' => '1991-12-25T23:59:59', ], ], 'SV' => [ 'USD' => [ - 'from' => '2001-01-01', + 'from' => '2001-01-01T00:00:00', ], 'SVC' => [ - 'from' => '1919-11-11', - 'to' => '2001-01-01', + 'from' => '1919-11-11T00:00:00', + 'to' => '2001-01-01T23:59:59', ], ], 'SX' => [ 'XCG' => [ - 'from' => '2025-03-31', + 'from' => '2025-03-31T04:00:00', ], 'ANG' => [ - 'from' => '2010-10-10', - 'to' => '2025-07-01', + 'from' => '2010-10-10T00:00:00', + 'to' => '2025-07-01T03:59:59', ], ], 'SY' => [ 'SYP' => [ - 'from' => '1948-01-01', + 'from' => '1948-01-01T00:00:00', ], ], 'SZ' => [ 'SZL' => [ - 'from' => '1974-09-06', + 'from' => '1974-09-06T00:00:00', ], ], 'TA' => [ 'GBP' => [ - 'from' => '1938-01-12', + 'from' => '1938-01-12T00:00:00', ], ], 'TC' => [ 'USD' => [ - 'from' => '1969-09-08', + 'from' => '1969-09-08T00:00:00', ], ], 'TD' => [ 'XAF' => [ - 'from' => '1993-01-01', + 'from' => '1993-01-01T00:00:00', ], ], 'TF' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1959-01-01', - 'to' => '2002-02-17', + 'from' => '1959-01-01T00:00:00', + 'to' => '2002-02-17T23:59:59', ], ], 'TG' => [ 'XOF' => [ - 'from' => '1958-11-28', + 'from' => '1958-11-28T00:00:00', ], ], 'TH' => [ 'THB' => [ - 'from' => '1928-04-15', + 'from' => '1928-04-15T00:00:00', ], ], 'TJ' => [ 'TJS' => [ - 'from' => '2000-10-26', + 'from' => '2000-10-26T00:00:00', ], 'TJR' => [ - 'from' => '1995-05-10', - 'to' => '2000-10-25', + 'from' => '1995-05-10T00:00:00', + 'to' => '2000-10-25T23:59:59', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1995-05-10', + 'from' => '1991-12-25T00:00:00', + 'to' => '1995-05-10T23:59:59', ], ], 'TK' => [ 'NZD' => [ - 'from' => '1967-07-10', + 'from' => '1967-07-10T00:00:00', ], ], 'TL' => [ 'USD' => [ - 'from' => '1999-10-20', + 'from' => '1999-10-20T00:00:00', ], 'TPE' => [ - 'from' => '1959-01-02', - 'to' => '2002-05-20', + 'from' => '1959-01-02T00:00:00', + 'to' => '2002-05-20T23:59:59', ], 'IDR' => [ - 'from' => '1975-12-07', - 'to' => '2002-05-20', + 'from' => '1975-12-07T00:00:00', + 'to' => '2002-05-20T23:59:59', ], ], 'TM' => [ 'TMT' => [ - 'from' => '2009-01-01', + 'from' => '2009-01-01T00:00:00', ], 'TMM' => [ - 'from' => '1993-11-01', - 'to' => '2009-01-01', + 'from' => '1993-11-01T00:00:00', + 'to' => '2009-01-01T23:59:59', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1993-11-01', + 'from' => '1991-12-25T00:00:00', + 'to' => '1993-11-01T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1991-12-25', + 'from' => '1961-01-01T00:00:00', + 'to' => '1991-12-25T23:59:59', ], ], 'TN' => [ 'TND' => [ - 'from' => '1958-11-01', + 'from' => '1958-11-01T00:00:00', ], ], 'TO' => [ 'TOP' => [ - 'from' => '1966-02-14', + 'from' => '1966-02-14T00:00:00', ], ], 'TP' => [ 'TPE' => [ - 'from' => '1959-01-02', - 'to' => '2002-05-20', + 'from' => '1959-01-02T00:00:00', + 'to' => '2002-05-20T23:59:59', ], 'IDR' => [ - 'from' => '1975-12-07', - 'to' => '2002-05-20', + 'from' => '1975-12-07T00:00:00', + 'to' => '2002-05-20T23:59:59', ], ], 'TR' => [ 'TRY' => [ - 'from' => '2005-01-01', + 'from' => '2005-01-01T00:00:00', ], 'TRL' => [ - 'from' => '1922-11-01', - 'to' => '2005-12-31', + 'from' => '1922-11-01T00:00:00', + 'to' => '2005-12-31T23:59:59', ], ], 'TT' => [ 'TTD' => [ - 'from' => '1964-01-01', + 'from' => '1964-01-01T00:00:00', ], ], 'TV' => [ 'AUD' => [ - 'from' => '1966-02-14', + 'from' => '1966-02-14T00:00:00', ], ], 'TW' => [ 'TWD' => [ - 'from' => '1949-06-15', + 'from' => '1949-06-15T00:00:00', ], ], 'TZ' => [ 'TZS' => [ - 'from' => '1966-06-14', + 'from' => '1966-06-14T00:00:00', ], ], 'UA' => [ 'UAH' => [ - 'from' => '1996-09-02', + 'from' => '1996-09-02T00:00:00', ], 'UAK' => [ - 'from' => '1992-11-13', - 'to' => '1993-10-17', + 'from' => '1992-11-13T00:00:00', + 'to' => '1993-10-17T23:59:59', ], 'RUR' => [ - 'from' => '1991-12-25', - 'to' => '1992-11-13', + 'from' => '1991-12-25T00:00:00', + 'to' => '1992-11-13T23:59:59', ], 'SUR' => [ - 'from' => '1961-01-01', - 'to' => '1991-12-25', + 'from' => '1961-01-01T00:00:00', + 'to' => '1991-12-25T23:59:59', ], ], 'UG' => [ 'UGX' => [ - 'from' => '1987-05-15', + 'from' => '1987-05-15T00:00:00', ], 'UGS' => [ - 'from' => '1966-08-15', - 'to' => '1987-05-15', + 'from' => '1966-08-15T00:00:00', + 'to' => '1987-05-15T23:59:59', ], ], 'UM' => [ 'USD' => [ - 'from' => '1944-01-01', + 'from' => '1944-01-01T00:00:00', ], ], 'US' => [ 'USD' => [ - 'from' => '1792-01-01', + 'from' => '1792-01-01T00:00:00', ], 'USN' => [ 'tender' => false, ], 'USS' => [ 'tender' => false, - 'to' => '2014-03-01', + 'to' => '2014-03-01T23:59:59', ], ], 'UY' => [ 'UYU' => [ - 'from' => '1993-03-01', + 'from' => '1993-03-01T00:00:00', ], 'UYP' => [ - 'from' => '1975-07-01', - 'to' => '1993-03-01', + 'from' => '1975-07-01T00:00:00', + 'to' => '1993-03-01T23:59:59', ], 'UYI' => [ 'tender' => false, @@ -2771,34 +2771,34 @@ ], 'UZ' => [ 'UZS' => [ - 'from' => '1994-07-01', + 'from' => '1994-07-01T00:00:00', ], ], 'VA' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'ITL' => [ - 'from' => '1870-10-19', - 'to' => '2002-02-28', + 'from' => '1870-10-19T00:00:00', + 'to' => '2002-02-28T23:59:59', ], ], 'VC' => [ 'XCD' => [ - 'from' => '1965-10-06', + 'from' => '1965-10-06T00:00:00', ], ], 'VE' => [ 'VES' => [ - 'from' => '2018-08-20', + 'from' => '2018-08-20T00:00:00', ], 'VEF' => [ - 'from' => '2008-01-01', - 'to' => '2018-08-20', + 'from' => '2008-01-01T00:00:00', + 'to' => '2018-08-20T23:59:59', ], 'VEB' => [ - 'from' => '1871-05-11', - 'to' => '2008-06-30', + 'from' => '1871-05-11T00:00:00', + 'to' => '2008-06-30T23:59:59', ], 'VED' => [ 'tender' => false, @@ -2806,159 +2806,159 @@ ], 'VG' => [ 'USD' => [ - 'from' => '1833-01-01', + 'from' => '1833-01-01T00:00:00', ], 'GBP' => [ - 'from' => '1833-01-01', - 'to' => '1959-01-01', + 'from' => '1833-01-01T00:00:00', + 'to' => '1959-01-01T23:59:59', ], ], 'VI' => [ 'USD' => [ - 'from' => '1837-01-01', + 'from' => '1837-01-01T00:00:00', ], ], 'VN' => [ 'VND' => [ - 'from' => '1985-09-14', + 'from' => '1985-09-14T00:00:00', ], 'VNN' => [ - 'from' => '1978-05-03', - 'to' => '1985-09-14', + 'from' => '1978-05-03T00:00:00', + 'to' => '1985-09-14T23:59:59', ], ], 'VU' => [ 'VUV' => [ - 'from' => '1981-01-01', + 'from' => '1981-01-01T00:00:00', ], ], 'WF' => [ 'XPF' => [ - 'from' => '1961-07-30', + 'from' => '1961-07-30T00:00:00', ], ], 'WS' => [ 'WST' => [ - 'from' => '1967-07-10', + 'from' => '1967-07-10T00:00:00', ], ], 'XK' => [ 'EUR' => [ - 'from' => '2002-01-01', + 'from' => '2002-01-01T00:00:00', ], 'DEM' => [ - 'from' => '1999-09-01', - 'to' => '2002-03-09', + 'from' => '1999-09-01T00:00:00', + 'to' => '2002-03-09T23:59:59', ], 'YUM' => [ - 'from' => '1994-01-24', - 'to' => '1999-09-30', + 'from' => '1994-01-24T00:00:00', + 'to' => '1999-09-30T23:59:59', ], ], 'YD' => [ 'YDD' => [ - 'from' => '1965-04-01', - 'to' => '1996-01-01', + 'from' => '1965-04-01T00:00:00', + 'to' => '1996-01-01T23:59:59', ], ], 'YE' => [ 'YER' => [ - 'from' => '1990-05-22', + 'from' => '1990-05-22T00:00:00', ], ], 'YT' => [ 'EUR' => [ - 'from' => '1999-01-01', + 'from' => '1999-01-01T00:00:00', ], 'FRF' => [ - 'from' => '1976-02-23', - 'to' => '2002-02-17', + 'from' => '1976-02-23T00:00:00', + 'to' => '2002-02-17T23:59:59', ], 'KMF' => [ - 'from' => '1975-01-01', - 'to' => '1976-02-23', + 'from' => '1975-01-01T00:00:00', + 'to' => '1976-02-23T23:59:59', ], ], 'YU' => [ 'YUM' => [ - 'from' => '1994-01-24', - 'to' => '2002-05-15', + 'from' => '1994-01-24T00:00:00', + 'to' => '2002-05-15T23:59:59', ], 'YUN' => [ - 'from' => '1990-01-01', - 'to' => '1992-07-24', + 'from' => '1990-01-01T00:00:00', + 'to' => '1992-07-24T23:59:59', ], 'YUD' => [ - 'from' => '1966-01-01', - 'to' => '1990-01-01', + 'from' => '1966-01-01T00:00:00', + 'to' => '1990-01-01T23:59:59', ], ], 'ZA' => [ 'ZAR' => [ - 'from' => '1961-02-14', + 'from' => '1961-02-14T00:00:00', ], 'ZAL' => [ - 'from' => '1985-09-01', + 'from' => '1985-09-01T00:00:00', 'tender' => false, - 'to' => '1995-03-13', + 'to' => '1995-03-13T23:59:59', ], ], 'ZM' => [ 'ZMW' => [ - 'from' => '2013-01-01', + 'from' => '2013-01-01T00:00:00', ], 'ZMK' => [ - 'from' => '1968-01-16', - 'to' => '2013-01-01', + 'from' => '1968-01-16T00:00:00', + 'to' => '2013-01-01T23:59:59', ], ], 'ZR' => [ 'ZRN' => [ - 'from' => '1993-11-01', - 'to' => '1998-07-31', + 'from' => '1993-11-01T00:00:00', + 'to' => '1998-07-31T23:59:59', ], 'ZRZ' => [ - 'from' => '1971-10-27', - 'to' => '1993-11-01', + 'from' => '1971-10-27T00:00:00', + 'to' => '1993-11-01T23:59:59', ], ], 'ZW' => [ 'ZWG' => [ - 'from' => '2024-06-25', + 'from' => '2024-06-25T00:00:00', ], 'USD' => [ - 'from' => '2009-04-12', + 'from' => '2009-04-12T00:00:00', ], 'ZWL' => [ - 'from' => '2009-02-02', - 'to' => '2024-08-31', + 'from' => '2009-02-02T00:00:00', + 'to' => '2024-08-31T23:59:59', ], 'ZWR' => [ - 'from' => '2008-08-01', - 'to' => '2009-02-02', + 'from' => '2008-08-01T00:00:00', + 'to' => '2009-02-02T23:59:59', ], 'ZWD' => [ - 'from' => '1980-04-18', - 'to' => '2008-08-01', + 'from' => '1980-04-18T00:00:00', + 'to' => '2008-08-01T23:59:59', ], 'RHD' => [ - 'from' => '1970-02-17', - 'to' => '1980-04-18', + 'from' => '1970-02-17T00:00:00', + 'to' => '1980-04-18T23:59:59', ], ], 'ZZ' => [ 'XFO' => [ - 'from' => '1930-01-01', + 'from' => '1930-01-01T00:00:00', 'tender' => false, - 'to' => '2003-04-01', + 'to' => '2003-04-01T23:59:59', ], 'XFU' => [ 'tender' => false, - 'to' => '2013-11-30', + 'to' => '2013-11-30T23:59:59', ], 'XRE' => [ 'tender' => false, - 'to' => '1999-11-30', + 'to' => '1999-11-30T23:59:59', ], ], ], From e517987799f6113d405497640ffbfc2a8d6942b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Wed, 1 Oct 2025 10:14:57 +0200 Subject: [PATCH 19/69] [Meta] Better exception when symfony link cannot read a JSON --- link | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/link b/link index 29f9600d6b94e..30e5e30fc16c0 100755 --- a/link +++ b/link @@ -49,7 +49,11 @@ $directories = array_merge(...array_values(array_map(function ($part) { $directories[] = __DIR__.'/src/Symfony/Contracts'; foreach ($directories as $dir) { if ($filesystem->exists($composer = "$dir/composer.json")) { - $sfPackages[json_decode(file_get_contents($composer))->name] = $dir; + try { + $sfPackages[json_decode(file_get_contents($composer), null, 512, JSON_THROW_ON_ERROR)->name] = $dir; + } catch (JsonException $e) { + throw new RuntimeException(sprintf('Error parsing "%s": %s', $composer, $e->getMessage()), previous: $e); + } } } From f0a2110b667c43e21550eb3ca3713df6153a0412 Mon Sep 17 00:00:00 2001 From: jmsche Date: Wed, 1 Oct 2025 14:13:20 +0200 Subject: [PATCH 20/69] [JsonStreamer] Fix documentation link in README --- src/Symfony/Component/JsonStreamer/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/JsonStreamer/README.md b/src/Symfony/Component/JsonStreamer/README.md index b6628686ed256..3e03dfb17dfd8 100644 --- a/src/Symfony/Component/JsonStreamer/README.md +++ b/src/Symfony/Component/JsonStreamer/README.md @@ -11,7 +11,7 @@ are not covered by Symfony's Resources --------- - * [Documentation](https://symfony.com/doc/current/components/ser-des.html) + * [Documentation](https://symfony.com/doc/current/serializer/streaming_json.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) From c035ec43147f3ad234678bf51ccacd256539e50c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Wed, 1 Oct 2025 16:12:59 +0200 Subject: [PATCH 21/69] [FrameworkBundle] Fix support of dumping workflow when workflow is decorated by TraceableWorkflow --- .../Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php | 4 ++++ src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php index 201fb8be80c0d..1fcb354241a87 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php @@ -21,6 +21,7 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\DependencyInjection\ServiceLocator; +use Symfony\Component\Workflow\Debug\TraceableWorkflow; use Symfony\Component\Workflow\Dumper\GraphvizDumper; use Symfony\Component\Workflow\Dumper\MermaidDumper; use Symfony\Component\Workflow\Dumper\PlantUmlDumper; @@ -78,6 +79,9 @@ protected function execute(InputInterface $input, OutputInterface $output): int throw new InvalidArgumentException(\sprintf('The workflow named "%s" cannot be found.', $workflowName)); } $workflow = $this->workflows->get($workflowName); + if ($workflow instanceof TraceableWorkflow) { + $workflow = $workflow->getInner(); + } $type = $workflow instanceof StateMachine ? 'state_machine' : 'workflow'; $definition = $workflow->getDefinition(); diff --git a/src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php b/src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php index c783e63541dd5..2d0c3a0100654 100644 --- a/src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php +++ b/src/Symfony/Component/Workflow/Debug/TraceableWorkflow.php @@ -89,6 +89,11 @@ public function getCalls(): array return $this->calls; } + public function getInner(): WorkflowInterface + { + return $this->workflow; + } + private function callInner(string $method, array $args): mixed { if ($this->disabled?->__invoke()) { From 4afa086e7e7eac0048ec96d843b6b52ff2a39b38 Mon Sep 17 00:00:00 2001 From: Christian Grasso Date: Mon, 29 Sep 2025 17:24:36 +0200 Subject: [PATCH 22/69] bug #61887 [Serializer] Fix discriminator class mapping with allow_extra_attributes=false Make sure that the discriminator mapping type property is considered an allowed attribute when the `AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES` context option is set to `false`. --- .../Normalizer/GetSetMethodNormalizer.php | 4 ++ .../Normalizer/ObjectNormalizer.php | 4 ++ .../Normalizer/PropertyNormalizer.php | 4 ++ .../Normalizer/GetSetMethodNormalizerTest.php | 17 +++++++++ .../Tests/Normalizer/ObjectNormalizerTest.php | 37 +++++++++++++++++++ .../Normalizer/PropertyNormalizerTest.php | 18 +++++++++ 6 files changed, 84 insertions(+) diff --git a/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php index 5ed77bc0e5030..b654eb82b07ae 100644 --- a/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php @@ -190,6 +190,10 @@ protected function isAllowedAttribute($classOrObject, string $attribute, ?string $class = \is_object($classOrObject) ? $classOrObject::class : $classOrObject; + if ($this->classDiscriminatorResolver?->getMappingForMappedObject($classOrObject)?->getTypeProperty() === $attribute) { + return true; + } + if (!isset(self::$reflectionCache[$class])) { self::$reflectionCache[$class] = new \ReflectionClass($class); } diff --git a/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php index 2f79cbe1c379c..0793d7da1a753 100644 --- a/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php @@ -168,6 +168,10 @@ protected function isAllowedAttribute($classOrObject, string $attribute, ?string $class = \is_object($classOrObject) ? $classOrObject::class : $classOrObject; + if ($this->classDiscriminatorResolver?->getMappingForMappedObject($classOrObject)?->getTypeProperty() === $attribute) { + return true; + } + if ($context['_read_attributes'] ?? true) { if (!isset(self::$isReadableCache[$class.$attribute])) { self::$isReadableCache[$class.$attribute] = $this->propertyInfoExtractor->isReadable($class, $attribute) || $this->hasAttributeAccessorMethod($class, $attribute) || (\is_object($classOrObject) && $this->propertyAccessor->isReadable($classOrObject, $attribute)); diff --git a/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php index 7a20452268231..a049aec05cf94 100644 --- a/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php @@ -117,6 +117,10 @@ protected function isAllowedAttribute(object|string $classOrObject, string $attr return false; } + if ($this->classDiscriminatorResolver?->getMappingForMappedObject($classOrObject)?->getTypeProperty() === $attribute) { + return true; + } + try { $reflectionProperty = $this->getReflectionProperty($classOrObject, $attribute); } catch (\ReflectionException) { diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php index 4398fbdab8b90..4ba602f107711 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php @@ -563,6 +563,23 @@ public function testSupportsAndDenormalizeWithOptionalSetterArgument(array $data $obj = $this->normalizer->denormalize($data, GetSetDummyWithOptionalAndMultipleSetterArgs::class); $this->assertSame($expected, $obj->$method()); } + + public function testDiscriminatorWithAllowExtraAttributesFalse() + { + // Discriminator type property should be allowed with allow_extra_attributes=false + $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader()); + $discriminator = new ClassDiscriminatorFromClassMetadata($classMetadataFactory); + $normalizer = new GetSetMethodNormalizer($classMetadataFactory, null, null, $discriminator); + + $obj = $normalizer->denormalize( + ['type' => 'one'], + GetSetMethodDummyInterface::class, + null, + [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false] + ); + + $this->assertInstanceOf(GetSetMethodDiscriminatedDummyOne::class, $obj); + } } class GetSetDummy diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php index ec26acf732877..8ef6ead38f8f7 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php @@ -23,6 +23,7 @@ use Symfony\Component\Serializer\Exception\LogicException; use Symfony\Component\Serializer\Exception\RuntimeException; use Symfony\Component\Serializer\Exception\UnexpectedValueException; +use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata; use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory; use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface; use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader; @@ -1061,6 +1062,23 @@ public function testPrecedenceOfAccessorMethods() 'foo' => 'hasFoo', ], $normalizedSwappedHasserIsser); } + + public function testDiscriminatorWithAllowExtraAttributesFalse() + { + // Discriminator type property should be allowed with allow_extra_attributes=false + $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader()); + $discriminator = new ClassDiscriminatorFromClassMetadata($classMetadataFactory); + $normalizer = new ObjectNormalizer($classMetadataFactory, null, null, null, $discriminator); + + $obj = $normalizer->denormalize( + ['type' => 'type_a'], + DiscriminatorDummyInterface::class, + null, + [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false] + ); + + $this->assertInstanceOf(DiscriminatorDummyTypeA::class, $obj); + } } class ProxyObjectDummy extends ObjectDummy @@ -1404,6 +1422,25 @@ public function isolate() } } +#[\Symfony\Component\Serializer\Attribute\DiscriminatorMap( + typeProperty: 'type', + mapping: [ + 'type_a' => DiscriminatorDummyTypeA::class, + 'type_b' => DiscriminatorDummyTypeB::class, + ] +)] +interface DiscriminatorDummyInterface +{ +} + +class DiscriminatorDummyTypeA implements DiscriminatorDummyInterface +{ +} + +class DiscriminatorDummyTypeB implements DiscriminatorDummyInterface +{ +} + class ObjectWithPropertyAndAllAccessorMethods { public function __construct( diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php index 4ff823654ce84..7711801ca1606 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php @@ -22,6 +22,7 @@ use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader; use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter; use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter; +use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer; use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; @@ -551,6 +552,23 @@ public function testDenormalizeWithDiscriminator() $this->assertEquals($denormalized, $normalizer->denormalize(['type' => 'two', 'url' => 'url'], PropertyDummyInterface::class)); } + + public function testDiscriminatorWithAllowExtraAttributesFalse() + { + // Discriminator type property should be allowed with allow_extra_attributes=false + $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader()); + $discriminator = new ClassDiscriminatorFromClassMetadata($classMetadataFactory); + $normalizer = new PropertyNormalizer($classMetadataFactory, null, null, $discriminator); + + $obj = $normalizer->denormalize( + ['type' => 'one'], + PropertyDummyInterface::class, + null, + [AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false] + ); + + $this->assertInstanceOf(PropertyDiscriminatedDummyOne::class, $obj); + } } class PropertyDummy From fe75d75d22eb1772dd6d1692543744126e976983 Mon Sep 17 00:00:00 2001 From: John Stevenson Date: Mon, 22 Sep 2025 20:04:19 +0100 Subject: [PATCH 23/69] [Console] Ensure terminal is usable after termination signal --- src/Symfony/Component/Console/Application.php | 8 - .../Console/Helper/QuestionHelper.php | 29 ++-- .../Console/Helper/TerminalInputHelper.php | 144 ++++++++++++++++++ .../Console/Tests/ApplicationTest.php | 38 ++++- .../Tests/Fixtures/application_signalable.php | 2 +- .../Tests/Fixtures/application_sttyhelper.php | 37 +++++ 6 files changed, 230 insertions(+), 28 deletions(-) create mode 100644 src/Symfony/Component/Console/Helper/TerminalInputHelper.php create mode 100644 src/Symfony/Component/Console/Tests/Fixtures/application_sttyhelper.php diff --git a/src/Symfony/Component/Console/Application.php b/src/Symfony/Component/Console/Application.php index c18d482b47997..dd562f0eb4569 100644 --- a/src/Symfony/Component/Console/Application.php +++ b/src/Symfony/Component/Console/Application.php @@ -1018,14 +1018,6 @@ protected function doRunCommand(Command $command, InputInterface $input, OutputI throw new RuntimeException('Unable to subscribe to signal events. Make sure that the "pcntl" extension is installed and that "pcntl_*" functions are not disabled by your php.ini\'s "disable_functions" directive.'); } - if (Terminal::hasSttyAvailable()) { - $sttyMode = shell_exec('stty -g'); - - foreach ([\SIGINT, \SIGTERM] as $signal) { - $this->signalRegistry->register($signal, static fn () => shell_exec('stty '.$sttyMode)); - } - } - if ($this->dispatcher) { // We register application signals, so that we can dispatch the event foreach ($this->signalsToDispatchEvent as $signal) { diff --git a/src/Symfony/Component/Console/Helper/QuestionHelper.php b/src/Symfony/Component/Console/Helper/QuestionHelper.php index 593b01b39da85..aa03459032e7f 100644 --- a/src/Symfony/Component/Console/Helper/QuestionHelper.php +++ b/src/Symfony/Component/Console/Helper/QuestionHelper.php @@ -258,11 +258,7 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu $ofs = -1; $matches = $autocomplete($ret); $numMatches = \count($matches); - - $sttyMode = shell_exec('stty -g'); - $isStdin = 'php://stdin' === (stream_get_meta_data($inputStream)['uri'] ?? null); - $r = [$inputStream]; - $w = []; + $inputHelper = new TerminalInputHelper($inputStream); // Disable icanon (so we can fread each keypress) and echo (we'll do echoing here instead) shell_exec('stty -icanon -echo'); @@ -272,15 +268,13 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu // Read a keypress while (!feof($inputStream)) { - while ($isStdin && 0 === @stream_select($r, $w, $w, 0, 100)) { - // Give signal handlers a chance to run - $r = [$inputStream]; - } + $inputHelper->waitForInput(); $c = fread($inputStream, 1); // as opposed to fgets(), fread() returns an empty string when the stream content is empty, not false. if (false === $c || ('' === $ret && '' === $c && null === $question->getDefault())) { - shell_exec('stty '.$sttyMode); + // Restore the terminal so it behaves normally again + $inputHelper->finish(); throw new MissingInputException('Aborted.'); } elseif ("\177" === $c) { // Backspace Character if (0 === $numMatches && 0 !== $i) { @@ -382,8 +376,8 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu } } - // Reset stty so it behaves normally again - shell_exec('stty '.$sttyMode); + // Restore the terminal so it behaves normally again + $inputHelper->finish(); return $fullChoice; } @@ -434,13 +428,17 @@ private function getHiddenResponse(OutputInterface $output, $inputStream, bool $ return $value; } + $inputHelper = null; + if (self::$stty && Terminal::hasSttyAvailable()) { - $sttyMode = shell_exec('stty -g'); + $inputHelper = new TerminalInputHelper($inputStream); shell_exec('stty -echo'); } elseif ($this->isInteractiveInput($inputStream)) { throw new RuntimeException('Unable to hide the response.'); } + $inputHelper?->waitForInput(); + $value = fgets($inputStream, 4096); if (4095 === \strlen($value)) { @@ -448,9 +446,8 @@ private function getHiddenResponse(OutputInterface $output, $inputStream, bool $ $errOutput->warning('The value was possibly truncated by your shell or terminal emulator'); } - if (self::$stty && Terminal::hasSttyAvailable()) { - shell_exec('stty '.$sttyMode); - } + // Restore the terminal so it behaves normally again + $inputHelper?->finish(); if (false === $value) { throw new MissingInputException('Aborted.'); diff --git a/src/Symfony/Component/Console/Helper/TerminalInputHelper.php b/src/Symfony/Component/Console/Helper/TerminalInputHelper.php new file mode 100644 index 0000000000000..750229a8fc43a --- /dev/null +++ b/src/Symfony/Component/Console/Helper/TerminalInputHelper.php @@ -0,0 +1,144 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Helper; + +/** + * TerminalInputHelper stops Ctrl-C and similar signals from leaving the terminal in + * an unusable state if its settings have been modified when reading user input. + * This can be an issue on non-Windows platforms. + * + * Usage: + * + * $inputHelper = new TerminalInputHelper($inputStream); + * + * ...change terminal settings + * + * // Wait for input before all input reads + * $inputHelper->waitForInput(); + * + * ...read input + * + * // Call finish to restore terminal settings and signal handlers + * $inputHelper->finish() + * + * @internal + */ +final class TerminalInputHelper +{ + /** @var resource */ + private $inputStream; + private bool $isStdin; + private string $initialState; + private int $signalToKill = 0; + private array $signalHandlers = []; + private array $targetSignals = []; + + /** + * @param resource $inputStream + * + * @throws \RuntimeException If unable to read terminal settings + */ + public function __construct($inputStream) + { + if (!\is_string($state = shell_exec('stty -g'))) { + throw new \RuntimeException('Unable to read the terminal settings.'); + } + $this->inputStream = $inputStream; + $this->initialState = $state; + $this->isStdin = 'php://stdin' === stream_get_meta_data($inputStream)['uri']; + $this->createSignalHandlers(); + } + + /** + * Waits for input and terminates if sent a default signal. + */ + public function waitForInput(): void + { + if ($this->isStdin) { + $r = [$this->inputStream]; + $w = []; + + // Allow signal handlers to run, either before Enter is pressed + // when icanon is enabled, or a single character is entered when + // icanon is disabled + while (0 === @stream_select($r, $w, $w, 0, 100)) { + $r = [$this->inputStream]; + } + } + $this->checkForKillSignal(); + } + + /** + * Restores terminal state and signal handlers. + */ + public function finish(): void + { + // Safeguard in case an unhandled kill signal exists + $this->checkForKillSignal(); + shell_exec('stty '.$this->initialState); + $this->signalToKill = 0; + + foreach ($this->signalHandlers as $signal => $originalHandler) { + pcntl_signal($signal, $originalHandler); + } + $this->signalHandlers = []; + $this->targetSignals = []; + } + + private function createSignalHandlers(): void + { + if (!\function_exists('pcntl_async_signals') || !\function_exists('pcntl_signal')) { + return; + } + + pcntl_async_signals(true); + $this->targetSignals = [\SIGINT, \SIGQUIT, \SIGTERM]; + + foreach ($this->targetSignals as $signal) { + $this->signalHandlers[$signal] = pcntl_signal_get_handler($signal); + + pcntl_signal($signal, function ($signal) { + // Save current state, then restore to initial state + $currentState = shell_exec('stty -g'); + shell_exec('stty '.$this->initialState); + $originalHandler = $this->signalHandlers[$signal]; + + if (\is_callable($originalHandler)) { + $originalHandler($signal); + // Handler did not exit, so restore to current state + shell_exec('stty '.$currentState); + + return; + } + + // Not a callable, so SIG_DFL or SIG_IGN + if (\SIG_DFL === $originalHandler) { + $this->signalToKill = $signal; + } + }); + } + } + + private function checkForKillSignal(): void + { + if (\in_array($this->signalToKill, $this->targetSignals, true)) { + // Try posix_kill + if (\function_exists('posix_kill')) { + pcntl_signal($this->signalToKill, \SIG_DFL); + posix_kill(getmypid(), $this->signalToKill); + } + + // Best attempt fallback + exit(128 + $this->signalToKill); + } + } +} diff --git a/src/Symfony/Component/Console/Tests/ApplicationTest.php b/src/Symfony/Component/Console/Tests/ApplicationTest.php index a1884ff312133..9d57161d33b85 100644 --- a/src/Symfony/Component/Console/Tests/ApplicationTest.php +++ b/src/Symfony/Component/Console/Tests/ApplicationTest.php @@ -2198,6 +2198,31 @@ public function testSignalableWithEventCommandDoesNotInterruptedOnTermSignals() * @group tty */ public function testSignalableRestoresStty() + { + $params = [__DIR__.'/Fixtures/application_signalable.php']; + $this->runRestoresSttyTest($params, 254, true); + } + + /** + * @group tty + * + * @dataProvider provideTerminalInputHelperOption + */ + public function testTerminalInputHelperRestoresStty(string $option) + { + $params = [__DIR__.'/Fixtures/application_sttyhelper.php', $option]; + $this->runRestoresSttyTest($params, 0, false); + } + + public static function provideTerminalInputHelperOption() + { + return [ + ['--choice'], + ['--hidden'], + ]; + } + + private function runRestoresSttyTest(array $params, int $expectedExitCode, bool $equals) { if (!Terminal::hasSttyAvailable()) { $this->markTestSkipped('stty not available'); @@ -2209,22 +2234,29 @@ public function testSignalableRestoresStty() $previousSttyMode = shell_exec('stty -g'); - $p = new Process(['php', __DIR__.'/Fixtures/application_signalable.php']); + array_unshift($params, 'php'); + $p = new Process($params); $p->setTty(true); $p->start(); for ($i = 0; $i < 10 && shell_exec('stty -g') === $previousSttyMode; ++$i) { - usleep(100000); + usleep(200000); } $this->assertNotSame($previousSttyMode, shell_exec('stty -g')); $p->signal(\SIGINT); - $p->wait(); + $exitCode = $p->wait(); $sttyMode = shell_exec('stty -g'); shell_exec('stty '.$previousSttyMode); $this->assertSame($previousSttyMode, $sttyMode); + + if ($equals) { + $this->assertEquals($expectedExitCode, $exitCode); + } else { + $this->assertNotEquals($expectedExitCode, $exitCode); + } } private function createSignalableApplication(Command $command, ?EventDispatcherInterface $dispatcher): Application diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_signalable.php b/src/Symfony/Component/Console/Tests/Fixtures/application_signalable.php index 12cf744eaffd9..9cbdd8e78c728 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_signalable.php +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_signalable.php @@ -20,7 +20,7 @@ public function getSubscribedSignals(): array public function handleSignal(int $signal, int|false $previousExitCode = 0): int|false { - exit(0); + exit(254); } }) ->setCode(function(InputInterface $input, OutputInterface $output) { diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_sttyhelper.php b/src/Symfony/Component/Console/Tests/Fixtures/application_sttyhelper.php new file mode 100644 index 0000000000000..5b22c60b010f4 --- /dev/null +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_sttyhelper.php @@ -0,0 +1,37 @@ +setDefinition(new InputDefinition([ + new InputOption('choice', null, InputOption::VALUE_NONE, ''), + new InputOption('hidden', null, InputOption::VALUE_NONE, ''), + ])) + ->setCode(function (InputInterface $input, OutputInterface $output) { + if ($input->getOption('choice')) { + $this->getHelper('question') + ->ask($input, $output, new ChoiceQuestion('😊', ['n'])); + } else { + $question = new Question('😊'); + $question->setHidden(true); + $this->getHelper('question') + ->ask($input, $output, $question); + } + + return 0; + }) + ->run() + +; From 1f2552274bdd9784181c0a649766a93949530020 Mon Sep 17 00:00:00 2001 From: Mati Kochen Date: Thu, 2 Oct 2025 11:27:22 +0200 Subject: [PATCH 24/69] Revert "[Mailer] Fix memory leak with `mailer.message_logger_listener`" This reverts commit b63317d2cf694fbc4169b91ee369dc594845aa51. --- .../Bundle/FrameworkBundle/Resources/config/mailer.php | 5 +++++ .../FrameworkBundle/Resources/config/mailer_debug.php | 8 -------- .../Mailer/EventListener/MessageLoggerListener.php | 9 ++------- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php index 02960787a697d..43e7fb9a5e4cb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php @@ -15,6 +15,7 @@ use Symfony\Component\Mailer\EventListener\DkimSignedMessageListener; use Symfony\Component\Mailer\EventListener\EnvelopeListener; use Symfony\Component\Mailer\EventListener\MessageListener; +use Symfony\Component\Mailer\EventListener\MessageLoggerListener; use Symfony\Component\Mailer\EventListener\MessengerTransportListener; use Symfony\Component\Mailer\EventListener\SmimeEncryptedMessageListener; use Symfony\Component\Mailer\EventListener\SmimeSignedMessageListener; @@ -71,6 +72,10 @@ ]) ->tag('kernel.event_subscriber') + ->set('mailer.message_logger_listener', MessageLoggerListener::class) + ->tag('kernel.event_subscriber') + ->tag('kernel.reset', ['method' => 'reset']) + ->set('mailer.messenger_transport_listener', MessengerTransportListener::class) ->tag('kernel.event_subscriber') diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer_debug.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer_debug.php index 721d218683f26..cdb205750f05d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer_debug.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer_debug.php @@ -12,17 +12,9 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; use Symfony\Component\Mailer\DataCollector\MessageDataCollector; -use Symfony\Component\Mailer\EventListener\MessageLoggerListener; return static function (ContainerConfigurator $container) { $container->services() - ->set('mailer.message_logger_listener', MessageLoggerListener::class) - ->args([ - service('profiler.is_disabled_state_checker')->nullOnInvalid(), - ]) - ->tag('kernel.event_subscriber') - ->tag('kernel.reset', ['method' => 'reset']) - ->set('mailer.data_collector', MessageDataCollector::class) ->args([ service('mailer.message_logger_listener'), diff --git a/src/Symfony/Component/Mailer/EventListener/MessageLoggerListener.php b/src/Symfony/Component/Mailer/EventListener/MessageLoggerListener.php index 3a3283f85066b..73338fdc12a50 100644 --- a/src/Symfony/Component/Mailer/EventListener/MessageLoggerListener.php +++ b/src/Symfony/Component/Mailer/EventListener/MessageLoggerListener.php @@ -25,9 +25,8 @@ class MessageLoggerListener implements EventSubscriberInterface, ResetInterface { private MessageEvents $events; - public function __construct( - protected ?\Closure $disabled = null, - ) { + public function __construct() + { $this->events = new MessageEvents(); } @@ -38,10 +37,6 @@ public function reset(): void public function onMessage(MessageEvent $event): void { - if ($this->disabled?->__invoke()) { - return; - } - $this->events->add($event); } From 6bc0089db40786ae5d8d019ab06ee590e85a06bd Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 2 Oct 2025 14:24:08 +0200 Subject: [PATCH 25/69] keep labels from configured choices --- .../Form/Extension/Core/Type/EnumType.php | 8 +++- .../Extension/Core/Type/EnumTypeTest.php | 37 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/EnumType.php b/src/Symfony/Component/Form/Extension/Core/Type/EnumType.php index bfede9c04d14e..b529a5869cec5 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/EnumType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/EnumType.php @@ -30,7 +30,13 @@ public function configureOptions(OptionsResolver $resolver): void ->setAllowedTypes('class', 'string') ->setAllowedValues('class', enum_exists(...)) ->setDefault('choices', static fn (Options $options): array => $options['class']::cases()) - ->setDefault('choice_label', static fn (\UnitEnum $choice) => $choice instanceof TranslatableInterface ? $choice : $choice->name) + ->setDefault('choice_label', static function (Options $options) { + if (\is_array($options['choices']) && !array_is_list($options['choices'])) { + return null; + } + + return static fn (\UnitEnum $choice) => $choice instanceof TranslatableInterface ? $choice : $choice->name; + }) ->setDefault('choice_value', static function (Options $options): ?\Closure { if (!is_a($options['class'], \BackedEnum::class, true)) { return null; diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/EnumTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/EnumTypeTest.php index 0458720691031..3916d86ebca22 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/EnumTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/EnumTypeTest.php @@ -274,6 +274,43 @@ public function testChoiceLabelTranslatable() $this->assertEquals('Left', $view->children[0]->vars['label']->trans(new IdentityTranslator())); } + public function testChoices() + { + $form = $this->factory->create($this->getTestedType(), null, [ + 'multiple' => false, + 'expanded' => true, + 'class' => Answer::class, + 'choices' => [ + Answer::Yes, + Answer::No, + ], + ]); + + $view = $form->createView(); + + $this->assertCount(2, $view->children); + $this->assertSame('Yes', $view->children[0]->vars['label']); + $this->assertSame('No', $view->children[1]->vars['label']); + } + + public function testChoicesWithLabels() + { + $form = $this->factory->create($this->getTestedType(), null, [ + 'multiple' => false, + 'expanded' => true, + 'class' => Answer::class, + 'choices' => [ + 'yes' => Answer::Yes, + 'no' => Answer::No, + ], + ]); + + $view = $form->createView(); + + $this->assertSame('yes', $view->children[0]->vars['label']); + $this->assertSame('no', $view->children[1]->vars['label']); + } + protected function getTestOptions(): array { return ['class' => Suit::class]; From 1f07a63894a8c12fcc0b747fe11fff42336accaa Mon Sep 17 00:00:00 2001 From: Danish Translation Contributor Date: Thu, 2 Oct 2025 17:42:19 +0200 Subject: [PATCH 26/69] [Translation] Update Danish (da) translations - Remove needs-review-translation state from validated translations in security.da.xlf and validators.da.xlf --- .../Resources/translations/security.da.xlf | 2 +- .../Resources/translations/validators.da.xlf | 70 +++++++++---------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.da.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.da.xlf index 564f0eee992ee..1f338806a870a 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.da.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.da.xlf @@ -76,7 +76,7 @@ Too many failed login attempts, please try again in %minutes% minutes. - For mange mislykkede loginforsøg, prøv igen om %minutes% minutter. + For mange mislykkede loginforsøg, prøv igen om %minutes% minutter. diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.da.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.da.xlf index b94d0785f5411..ee93fae920714 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.da.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.da.xlf @@ -136,7 +136,7 @@ This value is not a valid IP address. - Denne værdi er ikke en gyldig IP-adresse. + Denne værdi er ikke en gyldig IP-adresse. This value is not a valid language. @@ -192,7 +192,7 @@ No temporary folder was configured in php.ini, or the configured folder does not exist. - Der blev ikke konfigureret en midlertidig mappe i php.ini, eller den konfigurerede mappe eksisterer ikke. + Der blev ikke konfigureret en midlertidig mappe i php.ini, eller den konfigurerede mappe eksisterer ikke. Cannot write temporary file to disk. @@ -224,7 +224,7 @@ This value is not a valid International Bank Account Number (IBAN). - Denne værdi er ikke et gyldigt internationalt bankkontonummer (IBAN). + Denne værdi er ikke et gyldigt internationalt bankkontonummer (IBAN). This value is not a valid ISBN-10. @@ -312,7 +312,7 @@ This value is not a valid Business Identifier Code (BIC). - Denne værdi er ikke en gyldig forretningsidentifikationskode (BIC). + Denne værdi er ikke en gyldig forretningsidentifikationskode (BIC). Error @@ -320,7 +320,7 @@ This value is not a valid UUID. - Denne værdi er ikke en gyldig UUID. + Denne værdi er ikke en gyldig UUID. This value should be a multiple of {{ compared_value }}. @@ -436,123 +436,123 @@ This value is not a valid MAC address. - Denne værdi er ikke en gyldig MAC-adresse. + Denne værdi er ikke en gyldig MAC-adresse. This URL is missing a top-level domain. - Denne URL mangler et topdomæne. + Denne URL mangler et topdomæne. This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words. - Denne værdi er for kort. Den skal indeholde mindst ét ord.|Denne værdi er for kort. Den skal indeholde mindst {{ min }} ord. + Denne værdi er for kort. Den skal indeholde mindst ét ord.|Denne værdi er for kort. Den skal indeholde mindst {{ min }} ord. This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - Denne værdi er for lang. Den skal indeholde ét ord.|Denne værdi er for lang. Den skal indeholde {{ max }} ord eller færre. + Denne værdi er for lang. Den skal indeholde ét ord.|Denne værdi er for lang. Den skal indeholde {{ max }} ord eller færre. This value does not represent a valid week in the ISO 8601 format. - Denne værdi repræsenterer ikke en gyldig uge i ISO 8601-formatet. + Denne værdi repræsenterer ikke en gyldig uge i ISO 8601-formatet. This value is not a valid week. - Denne værdi er ikke en gyldig uge. + Denne værdi er ikke en gyldig uge. This value should not be before week "{{ min }}". - Denne værdi bør ikke være før uge "{{ min }}". + Denne værdi bør ikke være før uge "{{ min }}". This value should not be after week "{{ max }}". - Denne værdi bør ikke være efter uge "{{ max }}". + Denne værdi bør ikke være efter uge "{{ max }}". This value is not a valid Twig template. - Denne værdi er ikke en gyldig Twig-skabelon. + Denne værdi er ikke en gyldig Twig-skabelon. This file is not a valid video. - Denne fil er ikke en gyldig video. + Denne fil er ikke en gyldig video. The size of the video could not be detected. - Videostørrelsen kunne ikke registreres. + Videostørrelsen kunne ikke registreres. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Videobredden er for stor ({{ width }}px). Tilladt maksimal bredde er {{ max_width }}px. + Videobredden er for stor ({{ width }}px). Tilladt maksimal bredde er {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Videobredden er for lille ({{ width }}px). Mindste forventede bredde er {{ min_width }}px. + Videobredden er for lille ({{ width }}px). Mindste forventede bredde er {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Videoens højde er for stor ({{ height }}px). Tilladt maksimal højde er {{ max_height }}px. + Videoens højde er for stor ({{ height }}px). Tilladt maksimal højde er {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Videoens højde er for lille ({{ height }}px). Forventet minimumshøjde er {{ min_height }}px. + Videoens højde er for lille ({{ height }}px). Forventet minimumshøjde er {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Videoen har for få pixels ({{ pixels }}). Forventet minimum er {{ min_pixels }}. + Videoen har for få pixels ({{ pixels }}). Forventet minimum er {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Videoen har for mange pixels ({{ pixels }}). Forventet maksimummængde er {{ max_pixels }}. + Videoen har for mange pixels ({{ pixels }}). Forventet maksimummængde er {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Videoforholdet er for stort ({{ ratio }}). Tilladt maksimalforhold er {{ max_ratio }}. + Videoforholdet er for stort ({{ ratio }}). Tilladt maksimalforhold er {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Videoforholdet er for lille ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}. + Videoforholdet er for lille ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tilladt. + Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tilladt. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tilladt. + Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tilladt. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Videoen er i portrætformat ({{ width }}x{{ height }}px). Portrætvideoer er ikke tilladt. + Videoen er i portrætformat ({{ width }}x{{ height }}px). Portrætvideoer er ikke tilladt. The video file is corrupted. - Videofilen er beskadiget. + Videofilen er beskadiget. The video contains multiple streams. Only one stream is allowed. - Videoen indeholder flere streams. Kun én stream er tilladt. + Videoen indeholder flere streams. Kun én stream er tilladt. Unsupported video codec "{{ codec }}". - Ikke-understøttet videokodek "{{ codec }}". + Ikke-understøttet videokodek "{{ codec }}". Unsupported video container "{{ container }}". - Ikke-understøttet videocontainer "{{ container }}". + Ikke-understøttet videocontainer "{{ container }}". The image file is corrupted. - Billedfilen er beskadiget. + Billedfilen er beskadiget. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Billedet har for få pixels ({{ pixels }}). Forventet minimum er {{ min_pixels }}. + Billedet har for få pixels ({{ pixels }}). Forventet minimum er {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Billedet har for mange pixels ({{ pixels }}). Forventet maksimalt antal er {{ max_pixels }}. + Billedet har for mange pixels ({{ pixels }}). Forventet maksimalt antal er {{ max_pixels }}. This filename does not match the expected charset. - Dette filnavn matcher ikke det forventede tegnsæt. + Dette filnavn matcher ikke det forventede tegnsæt. From 0cf7a9af6b2b8eeb0ac218f45c0eff56ce2f9f87 Mon Sep 17 00:00:00 2001 From: Aydin Hassan Date: Fri, 3 Oct 2025 09:02:33 +0200 Subject: [PATCH 27/69] fix using lock from service when previous locks used env vars --- .../FrameworkExtension.php | 1 + .../Fixtures/php/lock_service_and_env.php | 14 +++++++++++++ .../Fixtures/xml/lock_service_and_env.xml | 20 +++++++++++++++++++ .../Fixtures/yml/lock_service_and_env.yml | 13 ++++++++++++ .../FrameworkExtensionTestCase.php | 15 ++++++++++++++ 5 files changed, 63 insertions(+) create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/lock_service_and_env.php create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/lock_service_and_env.xml create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/lock_service_and_env.yml diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 66af2771b5837..56de4975a3300 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -2207,6 +2207,7 @@ private function registerLockConfiguration(array $config, ContainerBuilder $cont $resourceStore = 'null'; } + $usedEnvs = []; $storeDsn = $container->resolveEnvPlaceholders($resourceStore, null, $usedEnvs); if (!$usedEnvs && !str_contains($resourceStore, ':') && !\in_array($resourceStore, ['flock', 'semaphore', 'in-memory', 'null'], true)) { $resourceStore = new Reference($resourceStore); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/lock_service_and_env.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/lock_service_and_env.php new file mode 100644 index 0000000000000..bf65e549c8c3e --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/lock_service_and_env.php @@ -0,0 +1,14 @@ +setParameter('env(REDIS_DSN)', 'redis://paas.com'); + +$container->loadFromExtension('framework', [ + 'annotations' => false, + 'http_method_override' => false, + 'handle_all_throwables' => true, + 'php_errors' => ['log' => true], + 'lock' => [ + 'foo' => '%env(REDIS_DSN)%', + 'bar' => 'my_service', + ], +]); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/lock_service_and_env.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/lock_service_and_env.xml new file mode 100644 index 0000000000000..124333d870c49 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/lock_service_and_env.xml @@ -0,0 +1,20 @@ + + + + + redis://paas.com + + + + + + + %env(REDIS_DSN)% + my_service + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/lock_service_and_env.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/lock_service_and_env.yml new file mode 100644 index 0000000000000..f2fc85f76173c --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/lock_service_and_env.yml @@ -0,0 +1,13 @@ +services: + my_service: + class: \Redis + +framework: + annotations: false + http_method_override: false + handle_all_throwables: true + php_errors: + log: true + lock: + foo: "%env(REDIS_DSN)%" + bar: my_service diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php index 1a0251d56d002..5cd73fcf4cd35 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php @@ -2629,6 +2629,21 @@ public function testLockWithService() self::assertEquals(new Reference('my_service'), $storeDef->getArgument(0)); } + public function testLockWithServiceAndEnv() + { + $container = $this->createContainerFromFile('lock_service_and_env', [], true, false); + $container->getCompilerPassConfig()->setOptimizationPasses([new ResolveChildDefinitionsPass()]); + $container->compile(); + + self::assertTrue($container->hasDefinition('lock.foo.factory')); + self::assertTrue($container->hasDefinition('lock.bar.factory')); + $storeDef = $container->getDefinition($container->getDefinition('lock.bar.factory')->getArgument(0)); + + $connection = $storeDef->getArgument(0); + self::assertInstanceOf(Reference::class, $connection); + self::assertEquals('my_service', $connection->__toString()); + } + public function testDefaultSemaphore() { $container = $this->createContainerFromFile('semaphore'); From 9e2baabd58131477ac81679157f8f6c0ff7063ce Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 3 Oct 2025 14:53:03 +0200 Subject: [PATCH 28/69] fix compatibility with Relay 0.12 --- .../Cache/Traits/Relay/Relay12Trait.php | 107 ++++++++++++++++++ .../Component/Cache/Traits/RelayProxy.php | 2 + 2 files changed, 109 insertions(+) create mode 100644 src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php diff --git a/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php b/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php new file mode 100644 index 0000000000000..26df3211feaf8 --- /dev/null +++ b/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php @@ -0,0 +1,107 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Traits\Relay; + +if (version_compare(phpversion('relay'), '0.12.0', '>=')) { + /** + * @internal + */ + trait Relay12Trait + { + public function delifeq($key, $value): \Relay\Relay|false|int + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->delifeq(...\func_get_args()); + } + + public function vadd($key, $values, $element, $options = null): \Relay\Relay|false|int + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vadd(...\func_get_args()); + } + + public function vcard($key): \Relay\Relay|false|int + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vcard(...\func_get_args()); + } + + public function vdim($key): \Relay\Relay|false|int + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vdim(...\func_get_args()); + } + + public function vemb($key, $element, $raw = false): \Relay\Relay|array|false + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vemb(...\func_get_args()); + } + + public function vgetattr($key, $element, $raw = false): \Relay\Relay|array|false|string + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vgetattr(...\func_get_args()); + } + + public function vinfo($key): \Relay\Relay|array|false + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vinfo(...\func_get_args()); + } + + public function vismember($key, $element): \Relay\Relay|bool + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vismember(...\func_get_args()); + } + + public function vlinks($key, $element, $withscores): \Relay\Relay|array|false + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vlinks(...\func_get_args()); + } + + public function vrandmember($key, $count = 0): \Relay\Relay|array|false|string + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrandmember(...\func_get_args()); + } + + public function vrange($key, $min, $max, $count = -1): \Relay\Relay|array|false + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrange(...\func_get_args()); + } + + public function vrem($key, $element): \Relay\Relay|false|int + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrem(...\func_get_args()); + } + + public function vsetattr($key, $element, $attributes): \Relay\Relay|false|int + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsetattr(...\func_get_args()); + } + + public function vsim($key, $member, $options = null): \Relay\Relay|array|false + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsim(...\func_get_args()); + } + + public function xdelex($key, $ids, $mode = null): \Relay\Relay|array|false + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xdelex(...\func_get_args()); + } + + public function xackdel($key, $group, $ids, $mode = null): \Relay\Relay|array|false + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xackdel(...\func_get_args()); + } + } +} else { + /** + * @internal + */ + trait Relay12Trait + { + } +} diff --git a/src/Symfony/Component/Cache/Traits/RelayProxy.php b/src/Symfony/Component/Cache/Traits/RelayProxy.php index 57403aed2971b..66cdbdefa3958 100644 --- a/src/Symfony/Component/Cache/Traits/RelayProxy.php +++ b/src/Symfony/Component/Cache/Traits/RelayProxy.php @@ -23,6 +23,7 @@ use Symfony\Component\Cache\Traits\Relay\NullableReturnTrait; use Symfony\Component\Cache\Traits\Relay\PfcountTrait; use Symfony\Component\Cache\Traits\Relay\Relay11Trait; +use Symfony\Component\Cache\Traits\Relay\Relay12Trait; use Symfony\Component\Cache\Traits\Relay\SwapdbTrait; use Symfony\Component\VarExporter\LazyObjectInterface; use Symfony\Component\VarExporter\LazyProxyTrait; @@ -54,6 +55,7 @@ class RelayProxy extends \Relay\Relay implements ResetInterface, LazyObjectInter use PfcountTrait; use RelayProxyTrait; use Relay11Trait; + use Relay12Trait; use SwapdbTrait; private const LAZY_OBJECT_PROPERTY_SCOPES = []; From 5b9d54761fbf7c26255fc56d30df15542975c0e1 Mon Sep 17 00:00:00 2001 From: Thomas Durand Date: Fri, 3 Oct 2025 14:08:56 +0200 Subject: [PATCH 29/69] [TypeInfo] ArrayShape can resolve key type as callable instead of string In PHP, array key type is either string or int. Although callable is not entirely false as long as it's a string callable, using callable as a key type for an array seems wrong, and it's unlikely to be what we expect. This is peculiarly true in environment when key name might collide with global function name. Proposed change is to check for int/string instead of resolving type. Because the input is an array, the key is already narrowed down to string|int in the input This bugfix is also a change of behavior, as callable was likely to be fed in keyTypes, and it won't longer occur with that change. --- src/Symfony/Component/TypeInfo/Tests/TypeFactoryTest.php | 6 ++++++ src/Symfony/Component/TypeInfo/Type/ArrayShapeType.php | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/TypeInfo/Tests/TypeFactoryTest.php b/src/Symfony/Component/TypeInfo/Tests/TypeFactoryTest.php index 4dedea3ab94ac..ff7ef17b0fef9 100644 --- a/src/Symfony/Component/TypeInfo/Tests/TypeFactoryTest.php +++ b/src/Symfony/Component/TypeInfo/Tests/TypeFactoryTest.php @@ -226,6 +226,12 @@ public function testCreateArrayShape() ), Type::arrayShape(['foo' => Type::bool()], extraKeyType: Type::string(), extraValueType: Type::bool())); } + public function testCreateArrayShapeWithCallableKey() + { + $arrayShape = new ArrayShapeType(['substr' => ['type' => Type::string(), 'optional' => false]]); + $this->assertEquals(Type::string(), $arrayShape->getCollectionKeyType()); + } + public function testCreateArrayKey() { $this->assertEquals(new UnionType(Type::int(), Type::string()), Type::arrayKey()); diff --git a/src/Symfony/Component/TypeInfo/Type/ArrayShapeType.php b/src/Symfony/Component/TypeInfo/Type/ArrayShapeType.php index a08e6118a0432..3dfae4996e5c8 100644 --- a/src/Symfony/Component/TypeInfo/Type/ArrayShapeType.php +++ b/src/Symfony/Component/TypeInfo/Type/ArrayShapeType.php @@ -41,7 +41,7 @@ public function __construct( $valueTypes = []; foreach ($shape as $k => $v) { - $keyTypes[] = self::fromValue($k); + $keyTypes[] = \is_int($k) ? Type::int() : Type::string(); $valueTypes[] = $v['type']; } From fed58464c9bd7baa9e19b7bcb6a1f2d24364458c Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 3 Oct 2025 14:36:37 +0200 Subject: [PATCH 30/69] fix Relay Cluster 0.12 compatibility --- .../Cache/Traits/Relay/WaitaofTrait.php | 41 +++++++++++++++++++ .../Cache/Traits/RelayClusterProxy.php | 7 +--- 2 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 src/Symfony/Component/Cache/Traits/Relay/WaitaofTrait.php diff --git a/src/Symfony/Component/Cache/Traits/Relay/WaitaofTrait.php b/src/Symfony/Component/Cache/Traits/Relay/WaitaofTrait.php new file mode 100644 index 0000000000000..d607f79100de5 --- /dev/null +++ b/src/Symfony/Component/Cache/Traits/Relay/WaitaofTrait.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Traits\Relay; + +use Relay\Cluster; +use Relay\Relay; + +if (version_compare(phpversion('relay'), '0.12.0', '>=')) { + /** + * @internal + */ + trait WaitaofTrait + { + + public function waitaof(array|string $key_or_address, int $numlocal, int $numremote, int $timeout): Cluster|array|false + { + return $this->initializeLazyObject()->waitaof(...\func_get_args()); + } + } +} else { + /** + * @internal + */ + trait WaitaofTrait + { + + public function waitaof(array|string $key_or_address, int $numlocal, int $numremote, int $timeout): Relay|array|false + { + return $this->initializeLazyObject()->waitaof(...\func_get_args()); + } + } +} diff --git a/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php b/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php index af524c8008131..754a6de4f7226 100644 --- a/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php +++ b/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php @@ -13,6 +13,7 @@ use Relay\Cluster; use Relay\Relay; +use Symfony\Component\Cache\Traits\Relay\WaitaofTrait; use Symfony\Component\VarExporter\LazyObjectInterface; use Symfony\Contracts\Service\ResetInterface; @@ -29,6 +30,7 @@ class RelayClusterProxy extends Cluster implements ResetInterface, LazyObjectInt use RedisProxyTrait { resetLazyObject as reset; } + use WaitaofTrait; public function __construct( ?string $name, @@ -187,11 +189,6 @@ public function dbsize(array|string $key_or_address): Cluster|int|false return $this->initializeLazyObject()->dbsize(...\func_get_args()); } - public function waitaof(array|string $key_or_address, int $numlocal, int $numremote, int $timeout): Relay|array|false - { - return $this->initializeLazyObject()->waitaof(...\func_get_args()); - } - public function restore(mixed $key, int $ttl, string $value, ?array $options = null): Cluster|bool { return $this->initializeLazyObject()->restore(...\func_get_args()); From eaeecc15213890ceaaef3f33b88b21eac6a92aec Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 3 Oct 2025 18:23:37 +0200 Subject: [PATCH 31/69] fix merge --- .../Cache/Traits/Relay/Relay12Trait.php | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php b/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php index 26df3211feaf8..6ec7dd100bd97 100644 --- a/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php +++ b/src/Symfony/Component/Cache/Traits/Relay/Relay12Trait.php @@ -19,82 +19,82 @@ trait Relay12Trait { public function delifeq($key, $value): \Relay\Relay|false|int { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->delifeq(...\func_get_args()); + return $this->initializeLazyObject()->delifeq(...\func_get_args()); } public function vadd($key, $values, $element, $options = null): \Relay\Relay|false|int { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vadd(...\func_get_args()); + return $this->initializeLazyObject()->vadd(...\func_get_args()); } public function vcard($key): \Relay\Relay|false|int { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vcard(...\func_get_args()); + return $this->initializeLazyObject()->vcard(...\func_get_args()); } public function vdim($key): \Relay\Relay|false|int { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vdim(...\func_get_args()); + return $this->initializeLazyObject()->vdim(...\func_get_args()); } public function vemb($key, $element, $raw = false): \Relay\Relay|array|false { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vemb(...\func_get_args()); + return $this->initializeLazyObject()->vemb(...\func_get_args()); } public function vgetattr($key, $element, $raw = false): \Relay\Relay|array|false|string { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vgetattr(...\func_get_args()); + return $this->initializeLazyObject()->vgetattr(...\func_get_args()); } public function vinfo($key): \Relay\Relay|array|false { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vinfo(...\func_get_args()); + return $this->initializeLazyObject()->vinfo(...\func_get_args()); } public function vismember($key, $element): \Relay\Relay|bool { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vismember(...\func_get_args()); + return $this->initializeLazyObject()->vismember(...\func_get_args()); } public function vlinks($key, $element, $withscores): \Relay\Relay|array|false { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vlinks(...\func_get_args()); + return $this->initializeLazyObject()->vlinks(...\func_get_args()); } public function vrandmember($key, $count = 0): \Relay\Relay|array|false|string { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrandmember(...\func_get_args()); + return $this->initializeLazyObject()->vrandmember(...\func_get_args()); } public function vrange($key, $min, $max, $count = -1): \Relay\Relay|array|false { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrange(...\func_get_args()); + return $this->initializeLazyObject()->vrange(...\func_get_args()); } public function vrem($key, $element): \Relay\Relay|false|int { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vrem(...\func_get_args()); + return $this->initializeLazyObject()->vrem(...\func_get_args()); } public function vsetattr($key, $element, $attributes): \Relay\Relay|false|int { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsetattr(...\func_get_args()); + return $this->initializeLazyObject()->vsetattr(...\func_get_args()); } public function vsim($key, $member, $options = null): \Relay\Relay|array|false { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->vsim(...\func_get_args()); + return $this->initializeLazyObject()->vsim(...\func_get_args()); } public function xdelex($key, $ids, $mode = null): \Relay\Relay|array|false { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xdelex(...\func_get_args()); + return $this->initializeLazyObject()->xdelex(...\func_get_args()); } public function xackdel($key, $group, $ids, $mode = null): \Relay\Relay|array|false { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xackdel(...\func_get_args()); + return $this->initializeLazyObject()->xackdel(...\func_get_args()); } } } else { From 93b0e3d639289f0f530cc04c5daaa32385d663f5 Mon Sep 17 00:00:00 2001 From: Mathias Arlaud Date: Sat, 4 Oct 2025 12:18:23 +0200 Subject: [PATCH 32/69] [TypeInfo] Fix type alias with template resolving --- .../Fixtures/DummyWithTemplateTypeAlias.php | 25 ++++++++++++++ .../TypeContext/TypeContextFactoryTest.php | 34 +++++++++++++------ .../TypeResolver/StringTypeResolverTest.php | 2 ++ .../TypeContext/TypeContextFactory.php | 20 +++++++++-- 4 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithTemplateTypeAlias.php diff --git a/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithTemplateTypeAlias.php b/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithTemplateTypeAlias.php new file mode 100644 index 0000000000000..dd0de12b60b98 --- /dev/null +++ b/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithTemplateTypeAlias.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\TypeInfo\Tests\Fixtures; + +/** + * @template T + * + * @phpstan-type AliasWithTemplate = T + */ +final class DummyWithTemplateTypeAlias +{ + /** + * @var AliasWithTemplate + */ + public mixed $foo; +} diff --git a/src/Symfony/Component/TypeInfo/Tests/TypeContext/TypeContextFactoryTest.php b/src/Symfony/Component/TypeInfo/Tests/TypeContext/TypeContextFactoryTest.php index 532ba3984250e..e604faf6ffe0c 100644 --- a/src/Symfony/Component/TypeInfo/Tests/TypeContext/TypeContextFactoryTest.php +++ b/src/Symfony/Component/TypeInfo/Tests/TypeContext/TypeContextFactoryTest.php @@ -20,6 +20,7 @@ use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithInvalidTypeAliasImport; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithRecursiveTypeAliases; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTemplates; +use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTemplateTypeAlias; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTypeAliases; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTypeAliasImportedFromInvalidClassName; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithUses; @@ -146,9 +147,23 @@ public function testDoNotCollectTemplatesWhenToStringTypeResolver() $this->assertEquals([], $typeContextFactory->createFromClassName(DummyWithTemplates::class)->templates); } - public function testCollectTypeAliases() + /** + * @dataProvider collectTypeAliasesDataProvider + * + * @param array $expectedTypeAliases + * @param class-string $className + */ + public function testCollectTypeAliases(array $expectedTypeAliases, string $className) { - $this->assertEquals([ + $this->assertEquals($expectedTypeAliases, $this->typeContextFactory->createFromClassName($className)->typeAliases); + } + + /** + * @return iterable, 1: class-string}> + */ + public static function collectTypeAliasesDataProvider(): iterable + { + yield [[ 'CustomString' => Type::string(), 'CustomInt' => Type::int(), 'CustomArray' => Type::arrayShape([0 => Type::int(), 1 => Type::string(), 2 => Type::bool()]), @@ -157,9 +172,9 @@ public function testCollectTypeAliases() 'PsalmCustomInt' => Type::int(), 'PsalmCustomArray' => Type::arrayShape([0 => Type::int(), 1 => Type::string(), 2 => Type::bool()]), 'PsalmAliasedCustomInt' => Type::int(), - ], $this->typeContextFactory->createFromClassName(DummyWithTypeAliases::class)->typeAliases); + ], DummyWithTypeAliases::class]; - $this->assertEquals([ + yield [[ 'CustomString' => Type::string(), 'CustomInt' => Type::int(), 'CustomArray' => Type::arrayShape([0 => Type::int(), 1 => Type::string(), 2 => Type::bool()]), @@ -168,9 +183,9 @@ public function testCollectTypeAliases() 'PsalmCustomInt' => Type::int(), 'PsalmCustomArray' => Type::arrayShape([0 => Type::int(), 1 => Type::string(), 2 => Type::bool()]), 'PsalmAliasedCustomInt' => Type::int(), - ], $this->typeContextFactory->createFromReflection(new \ReflectionClass(DummyWithTypeAliases::class))->typeAliases); + ], DummyWithTypeAliases::class]; - $this->assertEquals([ + yield [[ 'CustomString' => Type::string(), 'CustomInt' => Type::int(), 'CustomArray' => Type::arrayShape([0 => Type::int(), 1 => Type::string(), 2 => Type::bool()]), @@ -179,11 +194,10 @@ public function testCollectTypeAliases() 'PsalmCustomInt' => Type::int(), 'PsalmCustomArray' => Type::arrayShape([0 => Type::int(), 1 => Type::string(), 2 => Type::bool()]), 'PsalmAliasedCustomInt' => Type::int(), - ], $this->typeContextFactory->createFromReflection(new \ReflectionProperty(DummyWithTypeAliases::class, 'localAlias'))->typeAliases); + ], DummyWithTypeAliases::class]; - $this->assertEquals([ - 'CustomInt' => Type::int(), - ], $this->typeContextFactory->createFromReflection(new \ReflectionClass(DummyWithImportedOnlyTypeAliases::class))->typeAliases); + yield [['CustomInt' => Type::int()], DummyWithImportedOnlyTypeAliases::class]; + yield [['AliasWithTemplate' => Type::template('T')], DummyWithTemplateTypeAlias::class]; } public function testDoNotCollectTypeAliasesWhenToStringTypeResolver() diff --git a/src/Symfony/Component/TypeInfo/Tests/TypeResolver/StringTypeResolverTest.php b/src/Symfony/Component/TypeInfo/Tests/TypeResolver/StringTypeResolverTest.php index cca88b552acfd..fced0b82ad818 100644 --- a/src/Symfony/Component/TypeInfo/Tests/TypeResolver/StringTypeResolverTest.php +++ b/src/Symfony/Component/TypeInfo/Tests/TypeResolver/StringTypeResolverTest.php @@ -21,6 +21,7 @@ use Symfony\Component\TypeInfo\Tests\Fixtures\DummyEnum; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithConstants; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTemplates; +use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTemplateTypeAlias; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTypeAliases; use Symfony\Component\TypeInfo\Type; use Symfony\Component\TypeInfo\TypeContext\TypeContext; @@ -202,6 +203,7 @@ public static function resolveDataProvider(): iterable // type aliases yield [Type::int(), 'CustomInt', $typeContextFactory->createFromClassName(DummyWithTypeAliases::class)]; yield [Type::string(), 'CustomString', $typeContextFactory->createFromClassName(DummyWithTypeAliases::class)]; + yield [Type::template('T'), 'AliasWithTemplate', $typeContextFactory->createFromClassName(DummyWithTemplateTypeAlias::class)]; } public function testCannotResolveNonStringType() diff --git a/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php b/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php index a7564557e555c..e143e9db7346b 100644 --- a/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php +++ b/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php @@ -65,12 +65,20 @@ public function createFromClassName(string $calledClassName, ?string $declaringC $this->collectUses($declaringClassReflection), ); - return new TypeContext( + $typeContext = new TypeContext( $typeContext->calledClassName, $typeContext->declaringClassName, $typeContext->namespace, $typeContext->uses, $this->collectTemplates($declaringClassReflection, $typeContext), + ); + + return new TypeContext( + $typeContext->calledClassName, + $typeContext->declaringClassName, + $typeContext->namespace, + $typeContext->uses, + $typeContext->templates, $this->collectTypeAliases($declaringClassReflection, $typeContext), ); } @@ -103,12 +111,20 @@ public function createFromReflection(\Reflector $reflection): ?TypeContext default => $this->collectTemplates($declaringClassReflection, $typeContext), }; - return new TypeContext( + $typeContext = new TypeContext( $typeContext->calledClassName, $typeContext->declaringClassName, $typeContext->namespace, $typeContext->uses, $templates, + ); + + return new TypeContext( + $typeContext->calledClassName, + $typeContext->declaringClassName, + $typeContext->namespace, + $typeContext->uses, + $typeContext->templates, $this->collectTypeAliases($declaringClassReflection, $typeContext), ); } From 2c33018c05d7df7b033cef882784deb76b385aa5 Mon Sep 17 00:00:00 2001 From: matlec Date: Sun, 5 Oct 2025 15:55:43 +0200 Subject: [PATCH 33/69] =?UTF-8?q?[WebProfilerBundle]=20=E2=80=9Dfinish?= =?UTF-8?q?=E2=80=9D=20errored=20requests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resources/views/Profiler/toolbar_js.html.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig index 6d2930ff83253..53e24f15ee90b 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig @@ -429,7 +429,7 @@ var pending = pendingRequests; for (var i = 0; i < requestStack.length; i++) { startAjaxRequest(i); - if (requestStack[i].duration) { + if (requestStack[i].duration || requestStack[i].error) { finishAjaxRequest(i); } } From 7ad51ea28d98081bdcbde25006f1fa662faa1338 Mon Sep 17 00:00:00 2001 From: HypeMC Date: Mon, 6 Oct 2025 00:12:41 +0200 Subject: [PATCH 34/69] [PropertyInfo][TypeInfo] Fix resolving constructor type with templates --- .../Extractor/PhpStanExtractor.php | 5 ++-- .../Tests/Extractor/PhpStanExtractorTest.php | 23 ++++++++++++---- .../Fixtures/DummyWithTemplateAndParent.php | 23 ++++++++++++++++ .../Fixtures/Extractor/DummyInDifferentNs.php | 16 ++++++++++++ ...ummyWithTemplateAndParentInDifferentNs.php | 23 ++++++++++++++++ .../Fixtures/ParentDummyWithTemplate.php | 26 +++++++++++++++++++ .../Component/PropertyInfo/composer.json | 2 +- .../AnotherNamespace/DummyInDifferentNs.php | 18 +++++++++++++ ...ummyWithTemplateAndParentInDifferentNs.php | 23 ++++++++++++++++ .../Fixtures/DummyWithTemplateAndParent.php | 23 ++++++++++++++++ .../Fixtures/ParentDummyWithTemplate.php | 19 ++++++++++++++ .../TypeContext/TypeContextFactoryTest.php | 11 ++++++++ .../TypeContext/TypeContextFactory.php | 10 ++++++- 13 files changed, 213 insertions(+), 9 deletions(-) create mode 100644 src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyWithTemplateAndParent.php create mode 100644 src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/DummyInDifferentNs.php create mode 100644 src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/DummyWithTemplateAndParentInDifferentNs.php create mode 100644 src/Symfony/Component/PropertyInfo/Tests/Fixtures/ParentDummyWithTemplate.php create mode 100644 src/Symfony/Component/TypeInfo/Tests/Fixtures/AnotherNamespace/DummyInDifferentNs.php create mode 100644 src/Symfony/Component/TypeInfo/Tests/Fixtures/AnotherNamespace/DummyWithTemplateAndParentInDifferentNs.php create mode 100644 src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithTemplateAndParent.php create mode 100644 src/Symfony/Component/TypeInfo/Tests/Fixtures/ParentDummyWithTemplate.php diff --git a/src/Symfony/Component/PropertyInfo/Extractor/PhpStanExtractor.php b/src/Symfony/Component/PropertyInfo/Extractor/PhpStanExtractor.php index 625845b093dce..01e2bb77ef35f 100644 --- a/src/Symfony/Component/PropertyInfo/Extractor/PhpStanExtractor.php +++ b/src/Symfony/Component/PropertyInfo/Extractor/PhpStanExtractor.php @@ -245,11 +245,12 @@ public function getType(string $class, string $property, array $context = []): ? public function getTypeFromConstructor(string $class, string $property): ?Type { - if (!$tagDocNode = $this->getDocBlockFromConstructor($class, $property)) { + $declaringClass = $class; + if (!$tagDocNode = $this->getDocBlockFromConstructor($declaringClass, $property)) { return null; } - $typeContext = $this->typeContextFactory->createFromClassName($class); + $typeContext = $this->typeContextFactory->createFromClassName($class, $declaringClass); return $this->stringTypeResolver->resolve((string) $tagDocNode->type, $typeContext); } diff --git a/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php b/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php index 2dea9c4c18146..7f9f298b81e5f 100644 --- a/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php +++ b/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php @@ -26,6 +26,9 @@ use Symfony\Component\PropertyInfo\Tests\Fixtures\DummyNamespace; use Symfony\Component\PropertyInfo\Tests\Fixtures\DummyPropertyAndGetterWithDifferentTypes; use Symfony\Component\PropertyInfo\Tests\Fixtures\DummyUnionType; +use Symfony\Component\PropertyInfo\Tests\Fixtures\DummyWithTemplateAndParent; +use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\DummyInDifferentNs; +use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\DummyWithTemplateAndParentInDifferentNs; use Symfony\Component\PropertyInfo\Tests\Fixtures\IFace; use Symfony\Component\PropertyInfo\Tests\Fixtures\IntRangeDummy; use Symfony\Component\PropertyInfo\Tests\Fixtures\InvalidDummy; @@ -944,6 +947,21 @@ public static function constructorTypesProvider(): iterable yield ['ddd', null]; } + /** + * @dataProvider constructorTypesOfParentClassProvider + */ + public function testExtractTypeFromConstructorOfParentClass(string $class, string $property, Type $type) + { + $this->assertEquals($type, $this->extractor->getTypeFromConstructor($class, $property)); + } + + public static function constructorTypesOfParentClassProvider(): iterable + { + yield [Dummy::class, 'rootDummyItem', Type::nullable(Type::object(RootDummyItem::class))]; + yield [DummyWithTemplateAndParent::class, 'items', Type::list(Type::template('T', Type::object(DummyInDifferentNs::class)))]; + yield [DummyWithTemplateAndParentInDifferentNs::class, 'items', Type::list(Type::template('T', Type::object(DummyInDifferentNs::class)))]; + } + /** * @dataProvider unionTypesProvider */ @@ -1143,11 +1161,6 @@ public static function descriptionsProvider(): iterable yield ['bal', 'A short description ignoring template.', "A long description...\n\n...over several lines."]; yield ['foo2', null, null]; } - - public function testGetTypeFromConstructorOfParentClass() - { - $this->assertEquals(Type::nullable(Type::object(RootDummyItem::class)), $this->extractor->getTypeFromConstructor(Dummy::class, 'rootDummyItem')); - } } class PhpStanOmittedParamTagTypeDocBlock diff --git a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyWithTemplateAndParent.php b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyWithTemplateAndParent.php new file mode 100644 index 0000000000000..46aa6b34a8510 --- /dev/null +++ b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyWithTemplateAndParent.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\PropertyInfo\Tests\Fixtures; + +use Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor\DummyInDifferentNs; + +/** + * @template T of DummyInDifferentNs + * + * @extends ParentDummyWithTemplate + */ +class DummyWithTemplateAndParent extends ParentDummyWithTemplate +{ +} diff --git a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/DummyInDifferentNs.php b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/DummyInDifferentNs.php new file mode 100644 index 0000000000000..5f899049b9e1c --- /dev/null +++ b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/DummyInDifferentNs.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor; + +class DummyInDifferentNs +{ +} diff --git a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/DummyWithTemplateAndParentInDifferentNs.php b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/DummyWithTemplateAndParentInDifferentNs.php new file mode 100644 index 0000000000000..11a35fba8a2ef --- /dev/null +++ b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Extractor/DummyWithTemplateAndParentInDifferentNs.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\PropertyInfo\Tests\Fixtures\Extractor; + +use Symfony\Component\PropertyInfo\Tests\Fixtures\ParentDummyWithTemplate; + +/** + * @template T of DummyInDifferentNs + * + * @extends ParentDummyWithTemplate + */ +class DummyWithTemplateAndParentInDifferentNs extends ParentDummyWithTemplate +{ +} diff --git a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/ParentDummyWithTemplate.php b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/ParentDummyWithTemplate.php new file mode 100644 index 0000000000000..a44be28336bc0 --- /dev/null +++ b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/ParentDummyWithTemplate.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\PropertyInfo\Tests\Fixtures; + +/** + * @template T of object + */ +abstract class ParentDummyWithTemplate +{ + /** + * @param list $items + */ + public function __construct( + public array $items, + ) { + } +} diff --git a/src/Symfony/Component/PropertyInfo/composer.json b/src/Symfony/Component/PropertyInfo/composer.json index f8714b7f3fbc3..970cac0d4d184 100644 --- a/src/Symfony/Component/PropertyInfo/composer.json +++ b/src/Symfony/Component/PropertyInfo/composer.json @@ -26,7 +26,7 @@ "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/string": "^6.4|^7.0", - "symfony/type-info": "~7.2.8|^7.3.1" + "symfony/type-info": "^7.3.5" }, "require-dev": { "symfony/serializer": "^6.4|^7.0", diff --git a/src/Symfony/Component/TypeInfo/Tests/Fixtures/AnotherNamespace/DummyInDifferentNs.php b/src/Symfony/Component/TypeInfo/Tests/Fixtures/AnotherNamespace/DummyInDifferentNs.php new file mode 100644 index 0000000000000..70353aaba4b44 --- /dev/null +++ b/src/Symfony/Component/TypeInfo/Tests/Fixtures/AnotherNamespace/DummyInDifferentNs.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\TypeInfo\Tests\Fixtures\AnotherNamespace; + +use Symfony\Component\TypeInfo\Tests\Fixtures\AbstractDummy; + +class DummyInDifferentNs extends AbstractDummy +{ +} diff --git a/src/Symfony/Component/TypeInfo/Tests/Fixtures/AnotherNamespace/DummyWithTemplateAndParentInDifferentNs.php b/src/Symfony/Component/TypeInfo/Tests/Fixtures/AnotherNamespace/DummyWithTemplateAndParentInDifferentNs.php new file mode 100644 index 0000000000000..f9f20ed53f9bb --- /dev/null +++ b/src/Symfony/Component/TypeInfo/Tests/Fixtures/AnotherNamespace/DummyWithTemplateAndParentInDifferentNs.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\TypeInfo\Tests\Fixtures\AnotherNamespace; + +use Symfony\Component\TypeInfo\Tests\Fixtures\ParentDummyWithTemplate; + +/** + * @template T of DummyInDifferentNs + * + * @extends ParentDummyWithTemplate + */ +class DummyWithTemplateAndParentInDifferentNs extends ParentDummyWithTemplate +{ +} diff --git a/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithTemplateAndParent.php b/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithTemplateAndParent.php new file mode 100644 index 0000000000000..e31d39b41310d --- /dev/null +++ b/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithTemplateAndParent.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\TypeInfo\Tests\Fixtures; + +use Symfony\Component\TypeInfo\Tests\Fixtures\AnotherNamespace\DummyInDifferentNs; + +/** + * @template T of DummyInDifferentNs + * + * @extends ParentDummyWithTemplate + */ +class DummyWithTemplateAndParent extends ParentDummyWithTemplate +{ +} diff --git a/src/Symfony/Component/TypeInfo/Tests/Fixtures/ParentDummyWithTemplate.php b/src/Symfony/Component/TypeInfo/Tests/Fixtures/ParentDummyWithTemplate.php new file mode 100644 index 0000000000000..bb68f200c69f8 --- /dev/null +++ b/src/Symfony/Component/TypeInfo/Tests/Fixtures/ParentDummyWithTemplate.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\TypeInfo\Tests\Fixtures; + +/** + * @template T of object + */ +abstract class ParentDummyWithTemplate +{ +} diff --git a/src/Symfony/Component/TypeInfo/Tests/TypeContext/TypeContextFactoryTest.php b/src/Symfony/Component/TypeInfo/Tests/TypeContext/TypeContextFactoryTest.php index e604faf6ffe0c..451286ee0f40d 100644 --- a/src/Symfony/Component/TypeInfo/Tests/TypeContext/TypeContextFactoryTest.php +++ b/src/Symfony/Component/TypeInfo/Tests/TypeContext/TypeContextFactoryTest.php @@ -14,11 +14,14 @@ use PHPUnit\Framework\TestCase; use Symfony\Component\TypeInfo\Exception\LogicException; use Symfony\Component\TypeInfo\Tests\Fixtures\AbstractDummy; +use Symfony\Component\TypeInfo\Tests\Fixtures\AnotherNamespace\DummyInDifferentNs; +use Symfony\Component\TypeInfo\Tests\Fixtures\AnotherNamespace\DummyWithTemplateAndParentInDifferentNs; use Symfony\Component\TypeInfo\Tests\Fixtures\Dummy; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithImportedOnlyTypeAliases; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithInvalidTypeAlias; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithInvalidTypeAliasImport; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithRecursiveTypeAliases; +use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTemplateAndParent; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTemplates; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTemplateTypeAlias; use Symfony\Component\TypeInfo\Tests\Fixtures\DummyWithTypeAliases; @@ -138,6 +141,14 @@ public function testCollectTemplates() 'U' => Type::mixed(), 'V' => Type::mixed(), ], $this->typeContextFactory->createFromReflection(new \ReflectionParameter([DummyWithTemplates::class, 'getPrice'], 'inCents'))->templates); + + $this->assertEquals([ + 'T' => Type::object(DummyInDifferentNs::class), + ], $this->typeContextFactory->createFromReflection(new \ReflectionClass(DummyWithTemplateAndParent::class))->templates); + + $this->assertEquals([ + 'T' => Type::object(DummyInDifferentNs::class), + ], $this->typeContextFactory->createFromReflection(new \ReflectionClass(DummyWithTemplateAndParentInDifferentNs::class))->templates); } public function testDoNotCollectTemplatesWhenToStringTypeResolver() diff --git a/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php b/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php index e143e9db7346b..8e53006f28120 100644 --- a/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php +++ b/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php @@ -56,8 +56,16 @@ public function createFromClassName(string $calledClassName, ?string $declaringC $calledClassPath = explode('\\', $calledClassName); $declaringClassPath = explode('\\', $declaringClassName); + $calledClassNameReflection = self::$reflectionClassCache[$calledClassName] ??= new \ReflectionClass($calledClassName); $declaringClassReflection = self::$reflectionClassCache[$declaringClassName] ??= new \ReflectionClass($declaringClassName); + $calledClassTypeContext = new TypeContext( + end($calledClassPath), + end($declaringClassPath), + trim($calledClassNameReflection->getNamespaceName(), '\\'), + $this->collectUses($calledClassNameReflection), + ); + $typeContext = new TypeContext( end($calledClassPath), end($declaringClassPath), @@ -70,7 +78,7 @@ public function createFromClassName(string $calledClassName, ?string $declaringC $typeContext->declaringClassName, $typeContext->namespace, $typeContext->uses, - $this->collectTemplates($declaringClassReflection, $typeContext), + $this->collectTemplates($calledClassNameReflection, $calledClassTypeContext) + $this->collectTemplates($declaringClassReflection, $typeContext), ); return new TypeContext( From 2e80beeb92ccba5a368d8db5b73bf2c34bbab754 Mon Sep 17 00:00:00 2001 From: Patrick Kuijvenhoven Date: Mon, 6 Oct 2025 12:24:54 +0200 Subject: [PATCH 35/69] fixup! [Console] Specify types of interactive question choices --- src/Symfony/Component/Console/Question/ChoiceQuestion.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Console/Question/ChoiceQuestion.php b/src/Symfony/Component/Console/Question/ChoiceQuestion.php index cdcbcb529c52e..bcfe4dc45fd8d 100644 --- a/src/Symfony/Component/Console/Question/ChoiceQuestion.php +++ b/src/Symfony/Component/Console/Question/ChoiceQuestion.php @@ -26,9 +26,9 @@ class ChoiceQuestion extends Question private string $errorMessage = 'Value "%s" is invalid'; /** - * @param string $question The question to ask to the user - * @param array $choices The list of available choices - * @param string|bool|int|float|null $default The default answer to return + * @param string $question The question to ask to the user + * @param array $choices The list of available choices + * @param string|bool|int|float|null $default The default answer to return */ public function __construct(string $question, array $choices, string|bool|int|float|null $default = null) { @@ -44,7 +44,7 @@ public function __construct(string $question, array $choices, string|bool|int|fl } /** - * @return array + * @return array */ public function getChoices(): array { From c8768e7a2913ed3507f7c403e121486268a42c71 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sun, 5 Oct 2025 12:04:45 +0200 Subject: [PATCH 36/69] fix compatibility with RelayCluster 0.11 and 0.12 --- .../Cache/Tests/Traits/RedisProxiesTest.php | 2 +- .../Traits/Relay/RelayCluster11Trait.php | 87 ++++++++++++ .../Traits/Relay/RelayCluster12Trait.php | 131 ++++++++++++++++++ .../Cache/Traits/Relay/WaitaofTrait.php | 41 ------ .../Cache/Traits/RelayClusterProxy.php | 19 ++- 5 files changed, 227 insertions(+), 53 deletions(-) create mode 100644 src/Symfony/Component/Cache/Traits/Relay/RelayCluster11Trait.php create mode 100644 src/Symfony/Component/Cache/Traits/Relay/RelayCluster12Trait.php delete mode 100644 src/Symfony/Component/Cache/Traits/Relay/WaitaofTrait.php diff --git a/src/Symfony/Component/Cache/Tests/Traits/RedisProxiesTest.php b/src/Symfony/Component/Cache/Tests/Traits/RedisProxiesTest.php index 162ac495e8d35..edf39beba5822 100644 --- a/src/Symfony/Component/Cache/Tests/Traits/RedisProxiesTest.php +++ b/src/Symfony/Component/Cache/Tests/Traits/RedisProxiesTest.php @@ -135,7 +135,7 @@ public function testRelayClusterProxy() $expectedMethods = []; foreach ((new \ReflectionClass(RelayClusterProxy::class))->getMethods() as $method) { - if ('reset' === $method->name || method_exists(RedisProxyTrait::class, $method->name) || $method->isStatic()) { + if ('reset' === $method->name || method_exists(RedisProxyTrait::class, $method->name) || $method->isInternal()) { continue; } diff --git a/src/Symfony/Component/Cache/Traits/Relay/RelayCluster11Trait.php b/src/Symfony/Component/Cache/Traits/Relay/RelayCluster11Trait.php new file mode 100644 index 0000000000000..e8c5132bee415 --- /dev/null +++ b/src/Symfony/Component/Cache/Traits/Relay/RelayCluster11Trait.php @@ -0,0 +1,87 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Traits\Relay; + +if (version_compare(phpversion('relay'), '0.11.0', '>=')) { + /** + * @internal + */ + trait RelayCluster11Trait + { + public function flushSlotCache(): bool + { + return $this->initializeLazyObject()->flushSlotCache(...\func_get_args()); + } + + public function fullscan($match = null, $count = 0, $type = null): \Generator|false + { + return $this->initializeLazyObject()->fullscan(...\func_get_args()); + } + + public function getdel($key): mixed + { + return $this->initializeLazyObject()->getdel(...\func_get_args()); + } + + public function hexpire($hash, $ttl, $fields, $mode = null): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hexpire(...\func_get_args()); + } + + public function hexpireat($hash, $ttl, $fields, $mode = null): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hexpireat(...\func_get_args()); + } + + public function hexpiretime($hash, $fields): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hexpiretime(...\func_get_args()); + } + + public function hpersist($hash, $fields): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hpersist(...\func_get_args()); + } + + public function hpexpire($hash, $ttl, $fields, $mode = null): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hpexpire(...\func_get_args()); + } + + public function hpexpireat($hash, $ttl, $fields, $mode = null): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hpexpireat(...\func_get_args()); + } + + public function hpexpiretime($hash, $fields): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hpexpiretime(...\func_get_args()); + } + + public function hpttl($hash, $fields): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hpttl(...\func_get_args()); + } + + public function httl($hash, $fields): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->httl(...\func_get_args()); + } + } +} else { + /** + * @internal + */ + trait RelayCluster11Trait + { + } +} diff --git a/src/Symfony/Component/Cache/Traits/Relay/RelayCluster12Trait.php b/src/Symfony/Component/Cache/Traits/Relay/RelayCluster12Trait.php new file mode 100644 index 0000000000000..fe6d1d6360291 --- /dev/null +++ b/src/Symfony/Component/Cache/Traits/Relay/RelayCluster12Trait.php @@ -0,0 +1,131 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Traits\Relay; + +if (version_compare(phpversion('relay'), '0.12.0', '>=')) { + /** + * @internal + */ + trait RelayCluster12Trait + { + public function delifeq($key, $value): \Relay\Cluster|false|int + { + return $this->initializeLazyObject()->delifeq(...\func_get_args()); + } + + public function hgetdel($key, $fields): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hgetdel(...\func_get_args()); + } + + public function hgetex($hash, $fields, $expiry = null): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->hgetex(...\func_get_args()); + } + + public function hsetex($key, $fields, $expiry = null): \Relay\Cluster|false|int + { + return $this->initializeLazyObject()->hsetex(...\func_get_args()); + } + + public function vadd($key, $values, $element, $options = null): \Relay\Cluster|false|int + { + return $this->initializeLazyObject()->vadd(...\func_get_args()); + } + + public function vcard($key): \Relay\Cluster|false|int + { + return $this->initializeLazyObject()->vcard(...\func_get_args()); + } + + public function vdim($key): \Relay\Cluster|false|int + { + return $this->initializeLazyObject()->vdim(...\func_get_args()); + } + + public function vemb($key, $element, $raw = false): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->vemb(...\func_get_args()); + } + + public function vgetattr($key, $element, $raw = false): \Relay\Cluster|array|false|string + { + return $this->initializeLazyObject()->vgetattr(...\func_get_args()); + } + + public function vinfo($key): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->vinfo(...\func_get_args()); + } + + public function vismember($key, $element): \Relay\Cluster|bool + { + return $this->initializeLazyObject()->vismember(...\func_get_args()); + } + + public function vlinks($key, $element, $withscores): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->vlinks(...\func_get_args()); + } + + public function vrandmember($key, $count = 0): \Relay\Cluster|array|false|string + { + return $this->initializeLazyObject()->vrandmember(...\func_get_args()); + } + + public function vrange($key, $end, $start, $count = -1): \Relay\Cluster|array|bool + { + return $this->initializeLazyObject()->vrange(...\func_get_args()); + } + + public function vrem($key, $element): \Relay\Cluster|false|int + { + return $this->initializeLazyObject()->vrem(...\func_get_args()); + } + + public function vsetattr($key, $element, $attributes): \Relay\Cluster|false|int + { + return $this->initializeLazyObject()->vsetattr(...\func_get_args()); + } + + public function vsim($key, $member, $options = null): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->vsim(...\func_get_args()); + } + + public function waitaof(array|string $key_or_address, int $numlocal, int $numremote, int $timeout): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->waitaof(...\func_get_args()); + } + + public function xackdel($key, $group, $ids, $mode = null): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->xackdel(...\func_get_args()); + } + + public function xdelex($key, $ids, $mode = null): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->xdelex(...\func_get_args()); + } + } +} else { + /** + * @internal + */ + trait RelayCluster12Trait + { + public function waitaof(array|string $key_or_address, int $numlocal, int $numremote, int $timeout): \Relay\Relay|array|false + { + return $this->initializeLazyObject()->waitaof(...\func_get_args()); + } + } +} diff --git a/src/Symfony/Component/Cache/Traits/Relay/WaitaofTrait.php b/src/Symfony/Component/Cache/Traits/Relay/WaitaofTrait.php deleted file mode 100644 index d607f79100de5..0000000000000 --- a/src/Symfony/Component/Cache/Traits/Relay/WaitaofTrait.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -use Relay\Cluster; -use Relay\Relay; - -if (version_compare(phpversion('relay'), '0.12.0', '>=')) { - /** - * @internal - */ - trait WaitaofTrait - { - - public function waitaof(array|string $key_or_address, int $numlocal, int $numremote, int $timeout): Cluster|array|false - { - return $this->initializeLazyObject()->waitaof(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait WaitaofTrait - { - - public function waitaof(array|string $key_or_address, int $numlocal, int $numremote, int $timeout): Relay|array|false - { - return $this->initializeLazyObject()->waitaof(...\func_get_args()); - } - } -} diff --git a/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php b/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php index 754a6de4f7226..fa72fb37bf6be 100644 --- a/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php +++ b/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php @@ -13,7 +13,8 @@ use Relay\Cluster; use Relay\Relay; -use Symfony\Component\Cache\Traits\Relay\WaitaofTrait; +use Symfony\Component\Cache\Traits\Relay\RelayCluster11Trait; +use Symfony\Component\Cache\Traits\Relay\RelayCluster12Trait; use Symfony\Component\VarExporter\LazyObjectInterface; use Symfony\Contracts\Service\ResetInterface; @@ -30,7 +31,8 @@ class RelayClusterProxy extends Cluster implements ResetInterface, LazyObjectInt use RedisProxyTrait { resetLazyObject as reset; } - use WaitaofTrait; + use RelayCluster11Trait; + use RelayCluster12Trait; public function __construct( ?string $name, @@ -509,14 +511,14 @@ public function expiretime(mixed $key): Cluster|false|int return $this->initializeLazyObject()->expiretime(...\func_get_args()); } - public function pexpireat(mixed $key, int $timestamp_ms): Cluster|bool + public function getWithMeta($key): Cluster|array|false { - return $this->initializeLazyObject()->pexpireat(...\func_get_args()); + return $this->initializeLazyObject()->getWithMeta(...\func_get_args()); } - public static function flushMemory(?string $endpointId = null, ?int $db = null): bool + public function pexpireat(mixed $key, int $timestamp_ms): Cluster|bool { - return Cluster::flushMemory(...\func_get_args()); + return $this->initializeLazyObject()->pexpireat(...\func_get_args()); } public function pexpiretime(mixed $key): Cluster|false|int @@ -659,11 +661,6 @@ public function ltrim(mixed $key, int $start, int $end): Cluster|bool return $this->initializeLazyObject()->ltrim(...\func_get_args()); } - public static function maxMemory(): int - { - return Cluster::maxMemory(); - } - public function hget(mixed $key, mixed $member): mixed { return $this->initializeLazyObject()->hget(...\func_get_args()); From d2f87c6762da9eabc7f0b92bb5c96b00f587e64d Mon Sep 17 00:00:00 2001 From: Pitchaya Boonsarngsuk Date: Tue, 7 Oct 2025 13:53:27 +0100 Subject: [PATCH 37/69] RedisTagAwareAdapter Add Predis2 Interface checks (fix #60050) --- .../Cache/Adapter/RedisTagAwareAdapter.php | 12 +++++- .../PredisTagAwareReplicationAdapterTest.php | 37 +++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/Symfony/Component/Cache/Tests/Adapter/PredisTagAwareReplicationAdapterTest.php diff --git a/src/Symfony/Component/Cache/Adapter/RedisTagAwareAdapter.php b/src/Symfony/Component/Cache/Adapter/RedisTagAwareAdapter.php index 78c06082c8600..9aa959add24b5 100644 --- a/src/Symfony/Component/Cache/Adapter/RedisTagAwareAdapter.php +++ b/src/Symfony/Component/Cache/Adapter/RedisTagAwareAdapter.php @@ -14,6 +14,7 @@ use Predis\Connection\Aggregate\ClusterInterface; use Predis\Connection\Aggregate\PredisCluster; use Predis\Connection\Aggregate\ReplicationInterface; +use Predis\Connection\Replication\ReplicationInterface as Predis2ReplicationInterface; use Predis\Response\ErrorInterface; use Predis\Response\Status; use Relay\Relay; @@ -286,9 +287,16 @@ private function getRedisEvictionPolicy(): string $hosts = $this->getHosts(); $host = reset($hosts); - if ($host instanceof \Predis\Client && $host->getConnection() instanceof ReplicationInterface) { + if ($host instanceof \Predis\Client) { + $connection = $host->getConnection(); + // Predis supports info command only on the master in replication environments - $hosts = [$host->getClientFor('master')]; + if ($connection instanceof ReplicationInterface) { + $hosts = [$host->getClientFor('master')]; + } elseif ($connection instanceof Predis2ReplicationInterface) { + $connection->switchToMaster(); + $hosts = [$host]; + } } foreach ($hosts as $host) { diff --git a/src/Symfony/Component/Cache/Tests/Adapter/PredisTagAwareReplicationAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/PredisTagAwareReplicationAdapterTest.php new file mode 100644 index 0000000000000..383609c282c80 --- /dev/null +++ b/src/Symfony/Component/Cache/Tests/Adapter/PredisTagAwareReplicationAdapterTest.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Tests\Adapter; + +use Psr\Cache\CacheItemPoolInterface; +use Symfony\Component\Cache\Adapter\RedisTagAwareAdapter; + +/** + * @group integration + */ +class PredisTagAwareReplicationAdapterTest extends PredisRedisReplicationAdapterTest +{ + use TagAwareTestTrait; + + protected function setUp(): void + { + parent::setUp(); + $this->skippedTests['testTagItemExpiry'] = 'Testing expiration slows down the test suite'; + } + + public function createCachePool(int $defaultLifetime = 0, ?string $testMethod = null): CacheItemPoolInterface + { + $this->assertInstanceOf(\Predis\Client::class, self::$redis); + $adapter = new RedisTagAwareAdapter(self::$redis, str_replace('\\', '.', __CLASS__), $defaultLifetime); + + return $adapter; + } +} From 995be3ee6f4accdedf53cf4a2cad0a2e5e785758 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20S=C3=A1nchez=20Taboada?= Date: Tue, 7 Oct 2025 18:18:07 +0200 Subject: [PATCH 38/69] Issue #51941 galician translation --- .../Resources/translations/security.gl.xlf | 2 +- .../Resources/translations/validators.gl.xlf | 84 +++++++++---------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.gl.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.gl.xlf index 49f48dbed9412..f868a2e2db194 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.gl.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.gl.xlf @@ -76,7 +76,7 @@ Too many failed login attempts, please try again in %minutes% minutes. - Demasiados intentos fallidos de inicio de sesión, inténtao de novo en %minutes% minutos. + Demasiados intentos errados de inicio de sesión, inténtao de novo en %minutes% minutos. diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf index 33bdc3c7f833a..489457d548924 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf @@ -136,7 +136,7 @@ This value is not a valid IP address. - Este valor non é un enderezo IP válido. + Este valor non é un enderezo IP válido. This value is not a valid language. @@ -224,7 +224,7 @@ This value is not a valid International Bank Account Number (IBAN). - Este valor non é un Número de Conta Bancaria Internacional (IBAN) válido. + Este valor non é un Número de Conta Bancaria Internacional (IBAN) válido. This value is not a valid ISBN-10. @@ -312,7 +312,7 @@ This value is not a valid Business Identifier Code (BIC). - Este valor non é un Código de Identificación de Negocios (BIC) válido. + Este valor non é un Código de Identificación de Negocios (BIC) válido. Error @@ -320,7 +320,7 @@ This value is not a valid UUID. - Este valor non é un UUID válido. + Este valor non é un UUID válido. This value should be a multiple of {{ compared_value }}. @@ -404,155 +404,155 @@ The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less. - O nome do ficheiro é demasiado longo. Debe ter {{ filename_max_length }} caracteres ou menos. + O nome do ficheiro é demasiado longo. Debe ter {{ filename_max_length }} caracteres ou menos. The password strength is too low. Please use a stronger password. - A forza do contrasinal é demasiado baixa. Utilice un contrasinal máis forte. + O contrasinal é demasiado débil. Utilice un contrasinal máis seguro. This value contains characters that are not allowed by the current restriction-level. - Este valor contén caracteres que non están permitidos polo nivel de restrición actual. + Este valor contén caracteres que non están permitidos polo nivel de restrición actual. Using invisible characters is not allowed. - Non se permite usar caracteres invisibles. + Non se permite usar caracteres invisíbeis. Mixing numbers from different scripts is not allowed. - Non se permite mesturar números de diferentes scripts. + Non se permite mesturar números de diferentes scripts. Using hidden overlay characters is not allowed. - Non se permite usar caracteres de superposición ocultos. + Non se permite usar caracteres de superposición ocultos. The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}. - A extensión do ficheiro non é válida ({{ extension }}). As extensións permitidas son {{ extensions }}. + A extensión do ficheiro non é válida ({{ extension }}). As extensións permitidas son {{ extensions }}. The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}. - A codificación de caracteres detectada non é válida ({{ detected }}). As codificacións permitidas son {{ encodings }}. + A codificación de caracteres detectada non é válida ({{ detected }}). As codificacións permitidas son {{ encodings }}. This value is not a valid MAC address. - Este valor non é un enderezo MAC válido. + Este valor non é un enderezo MAC válido. This URL is missing a top-level domain. - Esta URL non contén un dominio de nivel superior. + A esta URL fáltalle un dominio de nivel superior. This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words. - Este valor é demasiado curto. Debe conter polo menos unha palabra.|Este valor é demasiado curto. Debe conter polo menos {{ min }} palabras. + Este valor é curto de máis. Debe conter polo menos unha palabra.|Este valor é curto de máis. Debe conter polo menos {{ min }} palabras. This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - Este valor é demasiado longo. Debe conter só unha palabra.|Este valor é demasiado longo. Debe conter {{ max }} palabras ou menos. + Este valor é longo de máis. Debe conter só unha palabra.|Este valor é longo de máis. Debe conter {{ max }} palabras ou menos. This value does not represent a valid week in the ISO 8601 format. - Este valor non representa unha semana válida no formato ISO 8601. + Este valor non representa unha semana válida no formato ISO 8601. This value is not a valid week. - Este valor non é unha semana válida. + Este valor non é unha semana válida. This value should not be before week "{{ min }}". - Este valor non debe ser anterior á semana "{{ min }}". + Este valor non debe ser anterior á semana "{{ min }}". This value should not be after week "{{ max }}". - Este valor non debe estar despois da semana "{{ max }}". + Este valor non debe estar despois da semana "{{ max }}". This value is not a valid Twig template. - Este valor non é un modelo Twig válido. + Este valor non é un modelo Twig válido. This file is not a valid video. - Este ficheiro non é un vídeo válido. + Este ficheiro non é un vídeo válido. The size of the video could not be detected. - Non se puido detectar o tamaño do vídeo. + Non se puido detectar o tamaño do vídeo. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - A largura do vídeo é demasiado grande ({{ width }}px). A largura máxima permitida é {{ max_width }}px. + A anchura do vídeo é demasiado grande ({{ width }}px). A anchura máxima permitida é {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - A largura do vídeo é demasiado pequena ({{ width }}px). A largura mínima agardada é {{ min_width }}px. + A anchura do vídeo é demasiado pequena ({{ width }}px). A anchura mínima agardada é {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - A altura do vídeo é demasiado grande ({{ height }}px). A altura máxima permitida é {{ max_height }}px. + A altura do vídeo é demasiado grande ({{ height }}px). A altura máxima permitida é {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - A altura do vídeo é demasiado pequena ({{ height }}px). A altura mínima agardada é {{ min_height }}px. + A altura do vídeo é demasiado pequena ({{ height }}px). A altura mínima agardada é {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - O vídeo ten moi poucos píxeles ({{ pixels }}). A cantidade mínima agardada é {{ min_pixels }}. + O vídeo ten moi poucos píxeles ({{ pixels }}). A cantidade mínima agardada é {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - O vídeo ten demasiados píxeles ({{ pixels }}). A cantidade máxima agardada é {{ max_pixels }}. + O vídeo ten demasiados píxeles ({{ pixels }}). A cantidade máxima agardada é {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - A relación do vídeo é demasiado grande ({{ ratio }}). A relación máxima permitida é {{ max_ratio }}. + A relación do vídeo é demasiado grande ({{ ratio }}). A relación máxima permitida é {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - A relación do vídeo é demasiado pequena ({{ ratio }}). A relación mínima agardada é {{ min_ratio }}. + A relación do vídeo é demasiado pequena ({{ ratio }}). A relación mínima agardada é {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - O vídeo é cadrado ({{ width }}x{{ height }}px). Non se permiten vídeos cadrados. + O vídeo é cadrado ({{ width }}x{{ height }}px). Non se permiten vídeos cadrados. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - O vídeo está en orientación horizontal ({{ width }}x{{ height }} px). Non se permiten vídeos en horizontal. + O vídeo está en orientación horizontal ({{ width }}x{{ height }} px). Non se permiten vídeos en horizontal. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - O vídeo está en orientación vertical ({{ width }}x{{ height }} px). Non se permiten vídeos en orientación vertical. + O vídeo está en orientación vertical ({{ width }}x{{ height }} px). Non se permiten vídeos en orientación vertical. The video file is corrupted. - O ficheiro de vídeo está danado. + O ficheiro de vídeo está danado. The video contains multiple streams. Only one stream is allowed. - O vídeo contén múltiples fluxos. Só se permite un fluxo. + O vídeo contén múltiples fluxos. Só se permite un fluxo. Unsupported video codec "{{ codec }}". - Códec de vídeo non compatible «{{ codec }}». + Códec de vídeo non compatible «{{ codec }}». Unsupported video container "{{ container }}". - Contedor de vídeo non compatible "{{ container }}". + Contedor de vídeo non compatible "{{ container }}". The image file is corrupted. - O ficheiro de imaxe está danado. + O ficheiro de imaxe está danado. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - A imaxe ten moi poucos píxeles ({{ pixels }}). A cantidade mínima esperada é {{ min_pixels }}. + A imaxe ten moi poucos píxeles ({{ pixels }}). A cantidade mínima esperada é {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - A imaxe ten demasiados píxeles ({{ pixels }}). A cantidade máxima esperada é {{ max_pixels }}. + A imaxe ten demasiados píxeles ({{ pixels }}). A cantidade máxima esperada é {{ max_pixels }}. This filename does not match the expected charset. - Este nome de ficheiro non coincide co conxunto de caracteres agardado. + Este nome de ficheiro non coincide co charset agardado. From d77fdd94c43483d3609e7b51a5c690fa30ee660b Mon Sep 17 00:00:00 2001 From: d-mitrofanov-v Date: Wed, 8 Oct 2025 07:24:22 +0300 Subject: [PATCH 39/69] fix unexpected type in denormalization errors when union type used in constructor in xml --- .../Normalizer/AbstractObjectNormalizer.php | 2 ++ .../Tests/Normalizer/ObjectNormalizerTest.php | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php index fe08440dc81e5..7c64fc74c13ac 100644 --- a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php @@ -601,6 +601,8 @@ private function validateAndDenormalize(array $types, string $currentClass, stri if (!$isUnionType && !$isNullable) { throw $e; } + + $expectedTypes[Type::BUILTIN_TYPE_OBJECT === $builtinType && $class ? $class : $builtinType] = true; } catch (ExtraAttributesException $e) { if (!$isUnionType && !$isNullable) { throw $e; diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php index 8ef6ead38f8f7..134b33d3651c2 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php @@ -21,6 +21,7 @@ use Symfony\Component\PropertyInfo\PropertyInfoExtractor; use Symfony\Component\Serializer\Attribute\Ignore; use Symfony\Component\Serializer\Exception\LogicException; +use Symfony\Component\Serializer\Exception\NotNormalizableValueException; use Symfony\Component\Serializer\Exception\RuntimeException; use Symfony\Component\Serializer\Exception\UnexpectedValueException; use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata; @@ -41,6 +42,7 @@ use Symfony\Component\Serializer\Tests\Fixtures\Attributes\GroupDummy; use Symfony\Component\Serializer\Tests\Fixtures\CircularReferenceDummy; use Symfony\Component\Serializer\Tests\Fixtures\DummyPrivatePropertyWithoutGetter; +use Symfony\Component\Serializer\Tests\Fixtures\DummyWithUnion; use Symfony\Component\Serializer\Tests\Fixtures\FormatAndContextAwareNormalizer; use Symfony\Component\Serializer\Tests\Fixtures\OtherSerializedNameDummy; use Symfony\Component\Serializer\Tests\Fixtures\Php74Dummy; @@ -343,6 +345,22 @@ public function testConstructorWithUnknownObjectTypeHintDenormalize() $normalizer->denormalize($data, DummyWithConstructorInexistingObject::class); } + public function testConstructorWithNotMatchingUnionTypes() + { + $data = [ + 'value' => 'string', + 'value2' => 'string', + ]; + $normalizer = new ObjectNormalizer(new ClassMetadataFactory(new AttributeLoader()), null, null, new PropertyInfoExtractor([], [new ReflectionExtractor()])); + + $this->expectException(NotNormalizableValueException::class); + $this->expectExceptionMessage('The type of the "value" attribute for class "Symfony\Component\Serializer\Tests\Fixtures\DummyWithUnion" must be one of "int", "float" ("string" given).'); + + $normalizer->denormalize($data, DummyWithUnion::class, 'xml', [ + AbstractNormalizer::ALLOW_EXTRA_ATTRIBUTES => false, + ]); + } + // attributes protected function getNormalizerForAttributes(): ObjectNormalizer From 0e59450e0cc04fffb7c5567c084b268dde784ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20S=C3=A1nchez=20Taboada?= Date: Wed, 8 Oct 2025 18:25:17 +0200 Subject: [PATCH 40/69] issue fix #59412 catalan translation --- .../Resources/translations/validators.ca.xlf | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.ca.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.ca.xlf index 6b9b2cd7319ac..e78fd8724adcc 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.ca.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.ca.xlf @@ -468,91 +468,91 @@ This value is not a valid Twig template. - Aquest valor no és una plantilla Twig vàlida. + Aquest valor no és una plantilla Twig vàlida. This file is not a valid video. - Aquest fitxer no és un vídeo vàlid. + Aquest fitxer no és un vídeo vàlid. The size of the video could not be detected. - No s'ha pogut detectar la mida del vídeo. + No s'ha pogut detectar la mida del vídeo. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - L'amplada del vídeo és massa gran ({{ width }}px). L'amplada màxima permesa és {{ max_width }}px. + L'amplada del vídeo és massa gran ({{ width }}px). L'amplada màxima permesa és {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - L’amplada del vídeo és massa petita ({{ width }}px). L’amplada mínima esperada és {{ min_width }}px. + L'amplada del vídeo és massa petita ({{ width }}px). L'amplada mínima esperada és {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - L'alçada del vídeo és massa gran ({{ height }}px). L'alçada màxima permesa és {{ max_height }}px. + L'altura del vídeo és massa gran ({{ height }}px). L'altura màxima permesa és {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - L'alçada del vídeo és massa petita ({{ height }}px). L'alçada mínima esperada és {{ min_height }}px. + L'altura del vídeo és massa petita ({{ height }}px). L'altura mínima esperada és {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - El vídeo té massa pocs píxels ({{ pixels }}). La quantitat mínima esperada és {{ min_pixels }}. + El vídeo no té suficients píxels ({{ pixels }}). La quantitat mínima esperada és {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - El vídeo té massa píxels ({{ pixels }}). La quantitat màxima prevista és {{ max_pixels }}. + El vídeo té massa píxels ({{ pixels }}). La quantitat màxima prevista és {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - La relació del vídeo és massa gran ({{ ratio }}). La relació màxima permesa és {{ max_ratio }}. + La relació del vídeo és massa gran ({{ ratio }}). La relació màxima permesa és {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - La relació del vídeo és massa petita ({{ ratio }}). La relació mínima esperada és {{ min_ratio }}. + La relació del vídeo és massa petita ({{ ratio }}). La relació mínima esperada és {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - El vídeo és quadrat ({{ width }}x{{ height }}px). No es permeten vídeos quadrats. + El vídeo és quadrat ({{ width }}x{{ height }}px). No es permeten vídeos quadrats. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - El vídeo té orientació horitzontal ({{ width }}x{{ height }} px). No es permeten vídeos horitzontals. + El vídeo té orientació horitzontal ({{ width }}x{{ height }} px). No es permeten vídeos horitzontals. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - El vídeo és en orientació vertical ({{ width }}x{{ height }} px). No es permeten vídeos en orientació vertical. + El vídeo és en orientació vertical ({{ width }}x{{ height }} px). No es permeten vídeos en orientació vertical. The video file is corrupted. - El fitxer de vídeo està corrupte. + El fitxer de vídeo està espatllat. The video contains multiple streams. Only one stream is allowed. - El vídeo conté diversos fluxos. Només es permet un sol flux. + El vídeo conté diversos fluxos. Només es permet un sol flux. Unsupported video codec "{{ codec }}". - Còdec de vídeo no compatible «{{ codec }}». + Còdec de vídeo incompatible «{{ codec }}». Unsupported video container "{{ container }}". - Contenidor de vídeo no compatible "{{ container }}". + Contenidor de vídeo incompatible "{{ container }}". The image file is corrupted. - El fitxer d'imatge està malmès. + El fitxer d'imatge està espatllat. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - La imatge té massa pocs píxels ({{ pixels }}). La quantitat mínima esperada és {{ min_pixels }}. + La imatge no té suficients píxels ({{ pixels }}). La quantitat mínima esperada és {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - La imatge té massa píxels ({{ pixels }}). El nombre màxim esperat és {{ max_pixels }}. + La imatge té massa píxels ({{ pixels }}). El nombre màxim esperat és {{ max_pixels }}. This filename does not match the expected charset. - Aquest nom de fitxer no coincideix amb el joc de caràcters esperat. + Aquest nom de fitxer no coincideix amb el charset esperat. From 90613e1ac52d675acdacc489a19d50c7b6f960a7 Mon Sep 17 00:00:00 2001 From: Billy Scheufler Date: Thu, 9 Oct 2025 17:52:33 +0200 Subject: [PATCH 41/69] [Translation][sv] Remove needs-review on Swedish strings; align phrasing and punctuation --- .../Resources/translations/security.sv.xlf | 2 +- .../Resources/translations/validators.sv.xlf | 58 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf index dffe36df6350f..a61036fd19635 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf @@ -76,7 +76,7 @@ Too many failed login attempts, please try again in %minutes% minutes. - För många misslyckade inloggningsförsök, vänligen försök igen om %minutes% minuter. + För många misslyckade inloggningsförsök, försök igen om %minutes% minuter. diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf index 675c0de2289c1..1c18cf1082f35 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf @@ -440,119 +440,119 @@ This URL is missing a top-level domain. - Denna URL saknar en toppdomän. + Denna URL saknar en toppdomän. This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words. - Det här värdet är för kort. Det ska innehålla minst ett ord.|Det här värdet är för kort. Det ska innehålla minst {{ min }} ord. + Det här värdet är för kort. Det ska innehålla minst ett ord.|Det här värdet är för kort. Det ska innehålla minst {{ min }} ord. This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - Det här värdet är för långt. Det ska innehålla endast ett ord.|Det här värdet är för långt. Det ska innehålla {{ max }} ord eller färre. + Det här värdet är för långt. Det ska innehålla endast ett ord.|Det här värdet är för långt. Det ska innehålla {{ max }} ord eller färre. This value does not represent a valid week in the ISO 8601 format. - Det här värdet representerar inte en giltig vecka i ISO 8601-formatet. + Det här värdet representerar inte en giltig vecka i ISO 8601-formatet. This value is not a valid week. - Det här värdet är inte en giltig vecka. + Det här värdet är inte en giltig vecka. This value should not be before week "{{ min }}". - Det här värdet bör inte vara före vecka "{{ min }}". + Det här värdet bör inte vara före vecka "{{ min }}". This value should not be after week "{{ max }}". - Det här värdet bör inte vara efter vecka "{{ max }}". + Det här värdet bör inte vara efter vecka "{{ max }}". This value is not a valid Twig template. - Det här värdet är inte en giltig Twig-mall. + Det här värdet är inte en giltig Twig-mall. This file is not a valid video. - Den här filen är inte en giltig video. + Den här filen är inte en giltig video. The size of the video could not be detected. - Videons storlek kunde inte upptäckas. + Videons storlek kunde inte upptäckas. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Videobredden är för stor ({{ width }}px). Tillåten maximal bredd är {{ max_width }}px. + Videobredden är för stor ({{ width }}px). Tillåten maximal bredd är {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Videobredden är för liten ({{ width }}px). Förväntad minsta bredd är {{ min_width }}px. + Videobredden är för liten ({{ width }}px). Förväntad minsta bredd är {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Videons höjd är för stor ({{ height }}px). Tillåten maximal höjd är {{ max_height }}px. + Videons höjd är för stor ({{ height }}px). Tillåten maximal höjd är {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Videohöjden är för liten ({{ height }}px). Förväntad minimihöjd är {{ min_height }}px. + Videohöjden är för liten ({{ height }}px). Förväntad minimihöjd är {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Videon har för få pixlar ({{ pixels }}). Förväntad miniminivå är {{ min_pixels }}. + Videon har för få pixlar ({{ pixels }}). Förväntad miniminivå är {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Videon har för många pixlar ({{ pixels }}). Förväntat maxantal är {{ max_pixels }}. + Videon har för många pixlar ({{ pixels }}). Förväntat maxantal är {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Videons förhållande är för stort ({{ ratio }}). Tillåtet maxförhållande är {{ max_ratio }}. + Videons förhållande är för stort ({{ ratio }}). Tillåtet maxförhållande är {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Videoförhållandet är för litet ({{ ratio }}). Förväntat minimiförhållande är {{ min_ratio }}. + Videoförhållandet är för litet ({{ ratio }}). Förväntat minimiförhållande är {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Videon är kvadratisk ({{ width }}x{{ height }}px). Kvadratiska videor är inte tillåtna. + Videon är kvadratisk ({{ width }}x{{ height }}px). Kvadratiska videor är inte tillåtna. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Videon är i liggande läge ({{ width }}x{{ height }} px). Liggande videor är inte tillåtna. + Videon är i liggande läge ({{ width }}x{{ height }}px). Liggande videor är inte tillåtna. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Videon är i porträttläge ({{ width }}x{{ height }}px). Videor i porträttläge är inte tillåtna. + Videon är i porträttläge ({{ width }}x{{ height }}px). Videor i porträttläge är inte tillåtna. The video file is corrupted. - Videofilen är skadad. + Videofilen är skadad. The video contains multiple streams. Only one stream is allowed. - Videon innehåller flera strömmar. Endast en ström är tillåten. + Videon innehåller flera strömmar. Endast en ström är tillåten. Unsupported video codec "{{ codec }}". - Videokodek stöds inte ”{{ codec }}”. + Videokodek stöds inte "{{ codec }}". Unsupported video container "{{ container }}". - Videokontainer stöds inte "{{ container }}". + Videokontainer stöds inte "{{ container }}". The image file is corrupted. - Bildfilen är skadad. + Bildfilen är skadad. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Bilden har för få pixlar ({{ pixels }}). Förväntat minimiantal är {{ min_pixels }}. + Bilden har för få pixlar ({{ pixels }}). Förväntat minimiantal är {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Bilden har för många pixlar ({{ pixels }}). Förväntat maxantal är {{ max_pixels }}. + Bilden har för många pixlar ({{ pixels }}). Förväntat maxantal är {{ max_pixels }}. This filename does not match the expected charset. - Detta filnamn stämmer inte med förväntad teckenuppsättning. + Detta filnamn stämmer inte med förväntad teckenuppsättning. From 9dc0531859b594a3d3f7484bde5cd944cb601d2a Mon Sep 17 00:00:00 2001 From: Patricia Wagner Date: Thu, 9 Oct 2025 17:55:10 +0200 Subject: [PATCH 42/69] [Validator] it: approve video/image/Twig translations and fix spacing (refs #60464) --- .../Resources/translations/validators.it.xlf | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf index 67cddc393cbe3..e22713e8d5d02 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf @@ -468,91 +468,91 @@ This value is not a valid Twig template. - Questo valore non è un template Twig valido. + Questo valore non è un template Twig valido. This file is not a valid video. - Questo file non è un video valido. + Questo file non è un video valido. The size of the video could not be detected. - Non è stato possibile rilevare la dimensione del video. + Non è stato possibile rilevare la dimensione del video. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - La larghezza del video è troppo grande ({{ width }}px). La larghezza massima consentita è {{ max_width }}px. + La larghezza del video è troppo grande ({{ width }}px). La larghezza massima consentita è {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - La larghezza del video è troppo piccola ({{ width }}px). La larghezza minima prevista è {{ min_width }}px. + La larghezza del video è troppo piccola ({{ width }}px). La larghezza minima prevista è {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - L'altezza del video è troppo grande ({{ height }}px). L'altezza massima consentita è {{ max_height }}px. + L'altezza del video è troppo grande ({{ height }}px). L'altezza massima consentita è {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - L'altezza del video è troppo piccola ({{ height }}px). L'altezza minima prevista è {{ min_height }}px. + L'altezza del video è troppo piccola ({{ height }}px). L'altezza minima prevista è {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Il video ha troppo pochi pixel ({{ pixels }}). La quantità minima prevista è {{ min_pixels }}. + Il video ha troppo pochi pixel ({{ pixels }}). La quantità minima prevista è {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Il video ha troppi pixel ({{ pixels }}). La quantità massima prevista è {{ max_pixels }}. + Il video ha troppi pixel ({{ pixels }}). La quantità massima prevista è {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Il rapporto del video è troppo alto ({{ ratio }}). Il rapporto massimo consentito è {{ max_ratio }}. + Il rapporto del video è troppo alto ({{ ratio }}). Il rapporto massimo consentito è {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Il rapporto del video è troppo piccolo ({{ ratio }}). Il rapporto minimo previsto è {{ min_ratio }}. + Il rapporto del video è troppo piccolo ({{ ratio }}). Il rapporto minimo previsto è {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Il video è quadrato ({{ width }}x{{ height }}px). I video quadrati non sono consentiti. + Il video è quadrato ({{ width }}x{{ height }}px). I video quadrati non sono consentiti. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Il video è in orientamento orizzontale ({{ width }}x{{ height }} px). I video orizzontali non sono consentiti. + Il video è in orientamento orizzontale ({{ width }}x{{ height }}px). I video orizzontali non sono consentiti. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Il video è in orientamento verticale ({{ width }}x{{ height }}px). I video in orientamento verticale non sono consentiti. + Il video è in orientamento verticale ({{ width }}x{{ height }}px). I video in orientamento verticale non sono consentiti. The video file is corrupted. - Il file video è danneggiato. + Il file video è danneggiato. The video contains multiple streams. Only one stream is allowed. - Il video contiene più flussi. È consentito un solo flusso. + Il video contiene più flussi. È consentito un solo flusso. Unsupported video codec "{{ codec }}". - Codec video non supportato «{{ codec }}». + Codec video non supportato «{{ codec }}». Unsupported video container "{{ container }}". - Container video non supportato "{{ container }}". + Container video non supportato "{{ container }}". The image file is corrupted. - Il file immagine è danneggiato. + Il file immagine è danneggiato. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - L’immagine ha troppo pochi pixel ({{ pixels }}). La quantità minima prevista è {{ min_pixels }}. + L’immagine ha troppo pochi pixel ({{ pixels }}). La quantità minima prevista è {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - L’immagine ha troppi pixel ({{ pixels }}). La quantità massima prevista è {{ max_pixels }}. + L’immagine ha troppi pixel ({{ pixels }}). La quantità massima prevista è {{ max_pixels }}. This filename does not match the expected charset. - Questo nome file non corrisponde al set di caratteri previsto. + Questo nome file non corrisponde al set di caratteri previsto. From 90dc7090587d729a7ee054ce8e8ddc432f8aa600 Mon Sep 17 00:00:00 2001 From: Michel Krenz Date: Thu, 9 Oct 2025 17:42:20 +0200 Subject: [PATCH 43/69] Improve Russian translations for video and image validators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Standardize terminology across all video and image validation messages - Use consistent 'корректный' instead of mixing 'допустимый' and 'корректный' - Improve grammar and naturalness for native Russian speakers - Fix spacing issues and use proper Russian quotation marks - Standardize 'not allowed' phrasing to 'не разрешены' - Use 'кодировка' instead of 'набор символов' for charset - Ensure consistency with existing translation style Fixes translation IDs 122-142 in validators.ru.xlf --- .../Resources/translations/validators.ru.xlf | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf index 482595c232a04..5392515defd20 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf @@ -472,87 +472,87 @@ This file is not a valid video. - Этот файл не является допустимым видео. + Этот файл не является корректным видео. The size of the video could not be detected. - Не удалось определить размер видео. + Не удалось определить размер видео. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Ширина видео слишком велика ({{ width }}px). Допустимая максимальная ширина — {{ max_width }}px. + Ширина видео слишком велика ({{ width }}px). Максимально допустимая ширина {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Ширина видео слишком мала ({{ width }}px). Ожидаемая минимальная ширина — {{ min_width }}px. + Ширина видео слишком мала ({{ width }}px). Минимально допустимая ширина {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Высота видео слишком большая ({{ height }}px). Допустимая максимальная высота — {{ max_height }}px. + Высота видео слишком велика ({{ height }}px). Максимально допустимая высота {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Высота видео слишком мала ({{ height }}px). Ожидаемая минимальная высота — {{ min_height }}px. + Высота видео слишком мала ({{ height }}px). Минимально допустимая высота {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - В видео слишком мало пикселей ({{ pixels }}). Ожидаемое минимальное количество {{ min_pixels }}. + В видео слишком мало пикселей ({{ pixels }} пикселей). Минимально допустимое количество {{ min_pixels }} пикселей. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - В видео слишком много пикселей ({{ pixels }}). Ожидаемое максимальное количество — {{ max_pixels }}. + В видео слишком много пикселей ({{ pixels }} пикселей). Максимально допустимое количество {{ max_pixels }} пикселей. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Соотношение сторон видео слишком велико ({{ ratio }}). Допустимое максимальное соотношение — {{ max_ratio }}. + Соотношение сторон видео слишком велико ({{ ratio }}). Максимально допустимое соотношение {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Соотношение сторон видео слишком маленькое ({{ ratio }}). Ожидаемое минимальное соотношение — {{ min_ratio }}. + Соотношение сторон видео слишком мало ({{ ratio }}). Минимально допустимое соотношение {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Видео квадратное ({{ width }}x{{ height }}px). Квадратные видео не допускаются. + Видео квадратное ({{ width }}x{{ height }}px). Квадратные видео не разрешены. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Видео в альбомной ориентации ({{ width }}x{{ height }} px). Видео в альбомной ориентации не допускаются. + Видео в альбомной ориентации ({{ width }}x{{ height }}px). Видео в альбомной ориентации не разрешены. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Видео имеет портретную ориентацию ({{ width }}x{{ height }}px). Видео с портретной ориентацией не допускаются. + Видео в портретной ориентации ({{ width }}x{{ height }}px). Видео в портретной ориентации не разрешены. The video file is corrupted. - Видеофайл повреждён. + Видеофайл повреждён. The video contains multiple streams. Only one stream is allowed. - Видео содержит несколько потоков. Разрешён только один поток. + Видео содержит несколько потоков. Разрешён только один поток. Unsupported video codec "{{ codec }}". - Неподдерживаемый видеокодек «{{ codec }}». + Неподдерживаемый видеокодек «{{ codec }}». Unsupported video container "{{ container }}". - Неподдерживаемый видеоконтейнер "{{ container }}". + Неподдерживаемый видеоконтейнер «{{ container }}». The image file is corrupted. - Файл изображения повреждён. + Файл изображения повреждён. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - В изображении слишком мало пикселей ({{ pixels }}). Ожидаемое минимальное количество — {{ min_pixels }}. + В изображении слишком мало пикселей ({{ pixels }} пикселей). Минимально допустимое количество {{ min_pixels }} пикселей. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Изображение содержит слишком много пикселей ({{ pixels }}). Ожидаемое максимальное количество — {{ max_pixels }}. + В изображении слишком много пикселей ({{ pixels }} пикселей). Максимально допустимое количество {{ max_pixels }} пикселей. This filename does not match the expected charset. - Это имя файла не соответствует ожидаемому набору символов. + Это имя файла не соответствует ожидаемой кодировке. From 03f65b7442a872eb95df2f4be59ea423740d4913 Mon Sep 17 00:00:00 2001 From: "anna-lena.waltinger" Date: Thu, 9 Oct 2025 18:02:32 +0200 Subject: [PATCH 44/69] Update Luxembourgish translations by removing 'needs-review-translation' state from multiple entries in security and validator files. --- .../Resources/translations/security.lb.xlf | 2 +- .../Resources/translations/validators.lb.xlf | 68 +++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.lb.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.lb.xlf index 181ef2444f62b..6ff4c984bc49c 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.lb.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.lb.xlf @@ -76,7 +76,7 @@ Too many failed login attempts, please try again in %minutes% minutes. - Ze vill Feeler beim Umellen, versicht weg erëm an %minutes% Minutten. + Ze vill Feeler beim Umellen, versicht weg erëm an %minutes% Minutten. diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf index 1228861998f13..dd4ac75a17942 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf @@ -136,7 +136,7 @@ This value is not a valid IP address. - Dëse Wäert ass keng gülteg IP-Adress. + Dëse Wäert ass keng gülteg IP-Adress. This value is not a valid language. @@ -224,7 +224,7 @@ This value is not a valid International Bank Account Number (IBAN). - Dëse Wäert ass keng gülteg International Bankkontonummer (IBAN). + Dëse Wäert ass keng gülteg International Bankkontonummer (IBAN). This value is not a valid ISBN-10. @@ -312,7 +312,7 @@ This value is not a valid Business Identifier Code (BIC). - Dëse Wäert ass kee gültege Business Identifier Code (BIC). + Dëse Wäert ass kee gültege Business Identifier Code (BIC). Error @@ -320,7 +320,7 @@ This value is not a valid UUID. - Dëse Wäert ass keng gülteg UUID. + Dëse Wäert ass keng gülteg UUID. This value should be a multiple of {{ compared_value }}. @@ -436,123 +436,123 @@ This value is not a valid MAC address. - Dëse Wäert ass keng gülteg MAC-Adress. + Dëse Wäert ass keng gülteg MAC-Adress. This URL is missing a top-level domain. - Dësen URL feelt eng Top-Level-Domain. + Dësen URL feelt eng Top-Level-Domain. This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words. - Dëse Wäert ass ze kuerz. Et sollt op d'mannst ee Wuert enthalen.|Dëse Wäert ass ze kuerz. Et sollt op d'mannst {{ min }} Wierder enthalen. + Dëse Wäert ass ze kuerz. Et sollt op d'mannst ee Wuert enthalen.|Dëse Wäert ass ze kuerz. Et sollt op d'mannst {{ min }} Wierder enthalen. This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - Dëse Wäert ass ze laang. Et sollt nëmmen ee Wuert enthalen.|Dëse Wäert ass ze laang. Et sollt {{ max }} Wierder oder manner enthalen. + Dëse Wäert ass ze laang. Et sollt nëmmen ee Wuert enthalen.|Dëse Wäert ass ze laang. Et sollt {{ max }} Wierder oder manner enthalen. This value does not represent a valid week in the ISO 8601 format. - Dëse Wäert stellt keng valabel Woch am ISO 8601-Format duer. + Dëse Wäert stellt keng valabel Woch am ISO 8601-Format duer. This value is not a valid week. - Dëse Wäert ass keng valabel Woch. + Dëse Wäert ass keng valabel Woch. This value should not be before week "{{ min }}". - Dëse Wäert sollt net virun der Woch "{{ min }}" sinn. + Dëse Wäert sollt net virun der Woch "{{ min }}" sinn. This value should not be after week "{{ max }}". - Dëse Wäert sollt net no Woch "{{ max }}" sinn. + Dëse Wäert sollt net no Woch "{{ max }}" sinn. This value is not a valid Twig template. - Dëse Wäert ass kee valabelen Twig-Template. + Dëse Wäert ass kee valabelen Twig-Template. This file is not a valid video. - Dës Datei ass kee gëltegen Video. + Dës Datei ass kee gëltegen Video. The size of the video could not be detected. - D’Gréisst vum Video konnt net erkannt ginn. + D'Gréisst vum Video konnt net erkannt ginn. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - D'Videobreed ass ze grouss ({{ width }}px). Erlaabt maximal Breed ass {{ max_width }}px. + D'Videobreed ass ze grouss ({{ width }}px). Erlaabt maximal Breed ass {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - D’Videobreed ass ze kleng ({{ width }}px). Minimal erwaart Breed ass {{ min_width }}px. + D'Videobreed ass ze kleng ({{ width }}px). Minimal erwaart Breed ass {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - D'Videohéicht ass ze grouss ({{ height }}px). Erlaabt maximal Héicht ass {{ max_height }}px. + D'Videohéicht ass ze grouss ({{ height }}px). Erlaabt maximal Héicht ass {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - D'Videohéicht ass ze kleng ({{ height }}px). Erwaart Mindesthéicht ass {{ min_height }}px. + D'Videohéicht ass ze kleng ({{ height }}px). Erwaart Mindesthéicht ass {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - De Video huet ze wéineg Pixel ({{ pixels }}). Erwaart Minimum ass {{ min_pixels }}. + De Video huet ze wéineg Pixel ({{ pixels }}). Erwaart Minimum ass {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - De Video huet ze vill Pixel ({{ pixels }}). Déi erwaart maximal Zuel ass {{ max_pixels }}. + De Video huet ze vill Pixel ({{ pixels }}). Déi erwaart maximal Zuel ass {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - D’Videoproportioun ass ze grouss ({{ ratio }}). Erlaabt maximal Proportioun ass {{ max_ratio }}. + D'Videoproportioun ass ze grouss ({{ ratio }}). Erlaabt maximal Proportioun ass {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - D'Videoratio ass ze kleng ({{ ratio }}). Minimal erwaart Ratio ass {{ min_ratio }}. + D'Videoratio ass ze kleng ({{ ratio }}). Minimal erwaart Ratio ass {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - De Video ass quadratesch ({{ width }}x{{ height }}px). Quadratesch Videoe sinn net erlaabt. + De Video ass quadratesch ({{ width }}x{{ height }}px). Quadratesch Videoe sinn net erlaabt. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - De Video ass am Landschaftsformat ({{ width }}x{{ height }} px). Landschafts-Videoe sinn net erlaabt. + De Video ass am Landschaftsformat ({{ width }}x{{ height }} px). Landschafts-Videoe sinn net erlaabt. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - De Video ass am Portraitformat ({{ width }}x{{ height }}px). Portrait-Videoe sinn net erlaabt. + De Video ass am Portraitformat ({{ width }}x{{ height }}px). Portrait-Videoe sinn net erlaabt. The video file is corrupted. - D'Videodatei ass beschiedegt. + D'Videodatei ass beschiedegt. The video contains multiple streams. Only one stream is allowed. - De Video enthält verschidde Stréimen. Nëmmen ee Stroum ass erlaabt. + De Video enthält verschidde Stréimen. Nëmmen ee Stroum ass erlaabt. Unsupported video codec "{{ codec }}". - Net ënnerstëtzte Videocodec „{{ codec }}“. + Net ënnerstëtzte Videocodec „{{ codec }}“. Unsupported video container "{{ container }}". - Net ënnerstëtzte Video-Container "{{ container }}". + Net ënnerstëtzte Video-Container "{{ container }}". The image file is corrupted. - D'Bilddatei ass beschiedegt. + D'Bilddatei ass beschiedegt. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - D’Bild huet ze wéineg Pixel ({{ pixels }}). Déi erwaart Mindestzuel ass {{ min_pixels }}. + D'Bild huet ze wéineg Pixel ({{ pixels }}). Déi erwaart Mindestzuel ass {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - D’Bild huet ze vill Pixel ({{ pixels }}). Déi erwaart maximal Zuel ass {{ max_pixels }}. + D'Bild huet ze vill Pixel ({{ pixels }}). Déi erwaart maximal Zuel ass {{ max_pixels }}. This filename does not match the expected charset. - Dësen Dateinumm entsprécht net dem erwaarten Zeechesaz. + Dësen Dateinumm entsprécht net dem erwaarten Zeechesaz. From 2e1f132a034a9c232864029915c4796635547c92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20Teutschl=C3=A4nder?= Date: Thu, 9 Oct 2025 18:35:36 +0200 Subject: [PATCH 45/69] Fix Norwegian translations - remove needs-review-translation status - Remove state="needs-review-translation" from all Norwegian translation entries - Complete translations for Form, Security, and Validator components - All translations are now finalized and ready for use Fixes #51900 --- .../Resources/translations/validators.no.xlf | 2 +- .../Resources/translations/security.no.xlf | 2 +- .../Resources/translations/validators.no.xlf | 86 +++++++++---------- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.no.xlf b/src/Symfony/Component/Form/Resources/translations/validators.no.xlf index 193306b7191ed..0dd82d3f39064 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.no.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.no.xlf @@ -12,7 +12,7 @@ The CSRF token is invalid. Please try to resubmit the form. - CSRF-tokenen er ugyldig. Vennligst prøv å sende inn skjemaet på nytt. + CSRF-tokenen er ugyldig. Vennligst prøv å sende inn skjemaet på nytt. This value is not a valid HTML5 color. diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.no.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.no.xlf index 9ace014112098..9f960cd1d8f79 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.no.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.no.xlf @@ -76,7 +76,7 @@ Too many failed login attempts, please try again in %minutes% minutes. - For mange mislykkede påloggingsforsøk, prøv igjen om %minutes% minutter. + For mange mislykkede påloggingsforsøk, prøv igjen om %minutes% minutter. diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.no.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.no.xlf index a815654559a07..11ce9777bbd3f 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.no.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.no.xlf @@ -136,7 +136,7 @@ This value is not a valid IP address. - Denne verdien er ikke en gyldig IP-adresse. + Denne verdien er ikke en gyldig IP-adresse. This value is not a valid language. @@ -192,7 +192,7 @@ No temporary folder was configured in php.ini, or the configured folder does not exist. - Ingen midlertidig mappe ble konfigurert i php.ini, eller den konfigurerte mappen eksisterer ikke. + Ingen midlertidig mappe ble konfigurert i php.ini, eller den konfigurerte mappen eksisterer ikke. Cannot write temporary file to disk. @@ -224,7 +224,7 @@ This value is not a valid International Bank Account Number (IBAN). - Denne verdien er ikke et gyldig internasjonalt bankkontonummer (IBAN). + Denne verdien er ikke et gyldig internasjonalt bankkontonummer (IBAN). This value is not a valid ISBN-10. @@ -312,7 +312,7 @@ This value is not a valid Business Identifier Code (BIC). - Denne verdien er ikke en gyldig forretningsidentifikasjonskode (BIC). + Denne verdien er ikke en gyldig forretningsidentifikasjonskode (BIC). Error @@ -320,7 +320,7 @@ This value is not a valid UUID. - Denne verdien er ikke en gyldig UUID. + Denne verdien er ikke en gyldig UUID. This value should be a multiple of {{ compared_value }}. @@ -404,155 +404,155 @@ The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less. - Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.|Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre. + Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.|Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre. The password strength is too low. Please use a stronger password. - Passordstyrken er for lav. Vennligst bruk et sterkere passord. + Passordstyrken er for lav. Vennligst bruk et sterkere passord. This value contains characters that are not allowed by the current restriction-level. - Denne verdien inneholder tegn som ikke er tillatt av gjeldende restriksjonsnivå. + Denne verdien inneholder tegn som ikke er tillatt av gjeldende restriksjonsnivå. Using invisible characters is not allowed. - Det er ikke tillatt å bruke usynlige tegn. + Det er ikke tillatt å bruke usynlige tegn. Mixing numbers from different scripts is not allowed. - Det er ikke tillatt å blande tall fra forskjellige skript. + Det er ikke tillatt å blande tall fra forskjellige skript. Using hidden overlay characters is not allowed. - Det er ikke tillatt å bruke skjulte overleggskarakterer. + Det er ikke tillatt å bruke skjulte overleggskarakterer. The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}. - Filutvidelsen er ugyldig ({{ extension }}). Tillatte utvidelser er {{ extensions }}. + Filutvidelsen er ugyldig ({{ extension }}). Tillatte utvidelser er {{ extensions }}. The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}. - Den oppdagede tegnkodingen er ugyldig ({{ detected }}). Tillatte kodinger er {{ encodings }}. + Den oppdagede tegnkodingen er ugyldig ({{ detected }}). Tillatte kodinger er {{ encodings }}. This value is not a valid MAC address. - Denne verdien er ikke en gyldig MAC-adresse. + Denne verdien er ikke en gyldig MAC-adresse. This URL is missing a top-level domain. - Denne URL-en mangler et toppnivådomene. + Denne URL-en mangler et toppnivådomene. This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words. - Denne verdien er for kort. Den bør inneholde minst ett ord.|Denne verdien er for kort. Den bør inneholde minst {{ min }} ord. + Denne verdien er for kort. Den bør inneholde minst ett ord.|Denne verdien er for kort. Den bør inneholde minst {{ min }} ord. This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - Denne verdien er for lang. Den bør inneholde kun ett ord.|Denne verdien er for lang. Den bør inneholde {{ max }} ord eller færre. + Denne verdien er for lang. Den bør inneholde kun ett ord.|Denne verdien er for lang. Den bør inneholde {{ max }} ord eller færre. This value does not represent a valid week in the ISO 8601 format. - Denne verdien representerer ikke en gyldig uke i ISO 8601-formatet. + Denne verdien representerer ikke en gyldig uke i ISO 8601-formatet. This value is not a valid week. - Denne verdien er ikke en gyldig uke. + Denne verdien er ikke en gyldig uke. This value should not be before week "{{ min }}". - Denne verdien bør ikke være før uke "{{ min }}". + Denne verdien bør ikke være før uke "{{ min }}". This value should not be after week "{{ max }}". - Denne verdien bør ikke være etter uke "{{ max }}". + Denne verdien bør ikke være etter uke "{{ max }}". This value is not a valid Twig template. - Denne verdien er ikke en gyldig Twig-mal. + Denne verdien er ikke en gyldig Twig-mal. This file is not a valid video. - Denne filen er ikke en gyldig video. + Denne filen er ikke en gyldig video. The size of the video could not be detected. - Videostørrelsen kunne ikke oppdages. + Videostørrelsen kunne ikke oppdages. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Videobredden er for stor ({{ width }}px). Tillatt maksimal bredde er {{ max_width }}px. + Videobredden er for stor ({{ width }}px). Tillatt maksimal bredde er {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Videobredden er for liten ({{ width }}px). Forventet minimumsbredde er {{ min_width }}px. + Videobredden er for liten ({{ width }}px). Forventet minimumsbredde er {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Videohøyden er for stor ({{ height }}px). Tillatt maksimal høyde er {{ max_height }}px. + Videohøyden er for stor ({{ height }}px). Tillatt maksimal høyde er {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Videoens høyde er for liten ({{ height }}px). Forventet minstehøyde er {{ min_height }}px. + Videoens høyde er for liten ({{ height }}px). Forventet minstehøyde er {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Videoen har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}. + Videoen har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Videoen har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}. + Videoen har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Video-forholdet er for stort ({{ ratio }}). Tillatt maksimalt forhold er {{ max_ratio }}. + Video-forholdet er for stort ({{ ratio }}). Tillatt maksimalt forhold er {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Videoforholdet er for lite ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}. + Videoforholdet er for lite ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tillatt. + Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tillatt. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tillatt. + Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tillatt. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Videoen er i portrettformat ({{ width }}x{{ height }}px). Portrettvideoer er ikke tillatt. + Videoen er i portrettformat ({{ width }}x{{ height }}px). Portrettvideoer er ikke tillatt. The video file is corrupted. - Videofilen er ødelagt. + Videofilen er ødelagt. The video contains multiple streams. Only one stream is allowed. - Videoen inneholder flere strømmer. Kun én strøm er tillatt. + Videoen inneholder flere strømmer. Kun én strøm er tillatt. Unsupported video codec "{{ codec }}". - Ikke støttet videokodek «{{ codec }}». + Ikke støttet videokodek «{{ codec }}». Unsupported video container "{{ container }}". - Ikke-støttet videokontainer "{{ container }}". + Ikke-støttet videokontainer "{{ container }}". The image file is corrupted. - Bildefilen er ødelagt. + Bildefilen er ødelagt. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Bildet har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}. + Bildet har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Bildet har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}. + Bildet har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}. This filename does not match the expected charset. - Dette filnavnet samsvarer ikke med forventet tegnsett. + Dette filnavnet samsvarer ikke med forventet tegnsett. From 9a4b763674a05a4bff1184d684602e87d0042db2 Mon Sep 17 00:00:00 2001 From: Patricia Date: Thu, 9 Oct 2025 20:25:56 +0200 Subject: [PATCH 46/69] fix: added new indonesian translations --- .../Resources/translations/validators.id.xlf | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf index d2ae0328e50c7..b303d50e1848c 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf @@ -468,91 +468,91 @@ This value is not a valid Twig template. - Nilai ini bukan templat Twig yang valid. + Nilai ini bukan templat Twig yang valid. This file is not a valid video. - Berkas ini bukan video yang valid. + Berkas ini bukan video yang valid. The size of the video could not be detected. - Ukuran video tidak dapat dideteksi. + Ukuran video tidak dapat dideteksi. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Lebar video terlalu besar ({{ width }}px). Lebar maksimum yang diizinkan adalah {{ max_width }}px. + Lebar video terlalu besar ({{ width }}px). Lebar maksimum yang diizinkan adalah {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Lebar video terlalu kecil ({{ width }}px). Lebar minimum yang diharapkan adalah {{ min_width }}px. + Lebar video terlalu kecil ({{ width }}px). Lebar minimum yang diharapkan adalah {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Tinggi video terlalu besar ({{ height }}px). Tinggi maksimum yang diizinkan adalah {{ max_height }}px. + Tinggi video terlalu besar ({{ height }}px). Tinggi maksimum yang diizinkan adalah {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Tinggi video terlalu kecil ({{ height }}px). Tinggi minimum yang diharapkan adalah {{ min_height }}px. + Tinggi video terlalu kecil ({{ height }}px). Tinggi minimum yang diharapkan adalah {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Video memiliki terlalu sedikit piksel ({{ pixels }}). Jumlah minimum yang diharapkan adalah {{ min_pixels }}. + Video memiliki terlalu sedikit piksel ({{ pixels }}). Jumlah minimum yang diharapkan adalah {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Video memiliki terlalu banyak piksel ({{ pixels }}). Jumlah maksimum yang diharapkan adalah {{ max_pixels }}. + Video memiliki terlalu banyak piksel ({{ pixels }}). Jumlah maksimum yang diharapkan adalah {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Rasio video terlalu besar ({{ ratio }}). Rasio maksimum yang diizinkan adalah {{ max_ratio }}. + Rasio video terlalu besar ({{ ratio }}). Rasio maksimum yang diizinkan adalah {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Rasio video terlalu kecil ({{ ratio }}). Rasio minimum yang diharapkan adalah {{ min_ratio }}. + Rasio video terlalu kecil ({{ ratio }}). Rasio minimum yang diharapkan adalah {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Video berbentuk persegi ({{ width }}x{{ height }}px). Video persegi tidak diizinkan. + Video berbentuk persegi ({{ width }}x{{ height }}px). Video persegi tidak diizinkan. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Video berorientasi lanskap ({{ width }}x{{ height }} px). Video berorientasi lanskap tidak diizinkan. + Video berorientasi lanskap ({{ width }}x{{ height }}px). Video berorientasi lanskap tidak diizinkan. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Video berorientasi potret ({{ width }}x{{ height }}px). Video berorientasi potret tidak diizinkan. + Video berorientasi potret ({{ width }}x{{ height }}px). Video berorientasi potret tidak diizinkan. The video file is corrupted. - Berkas video rusak. + Berkas video rusak. The video contains multiple streams. Only one stream is allowed. - Video berisi beberapa aliran. Hanya satu aliran yang diizinkan. + Video berisi beberapa aliran. Hanya satu aliran yang diizinkan. Unsupported video codec "{{ codec }}". - Kodek video tidak didukung "{{ codec }}". + Kodek video tidak didukung "{{ codec }}". Unsupported video container "{{ container }}". - Kontainer video tidak didukung "{{ container }}". + Kontainer video tidak didukung "{{ container }}". The image file is corrupted. - File gambar rusak. + Berkas gambar rusak. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Gambar memiliki terlalu sedikit piksel ({{ pixels }}). Jumlah minimum yang diharapkan adalah {{ min_pixels }}. + Gambar memiliki terlalu sedikit piksel ({{ pixels }}). Jumlah minimum yang diharapkan adalah {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Gambar memiliki terlalu banyak piksel ({{ pixels }}). Jumlah maksimum yang diharapkan adalah {{ max_pixels }}. + Gambar memiliki terlalu banyak piksel ({{ pixels }}). Jumlah maksimum yang diharapkan adalah {{ max_pixels }}. This filename does not match the expected charset. - Nama berkas ini tidak sesuai dengan set karakter yang diharapkan. + Nama berkas ini tidak sesuai dengan set karakter yang diharapkan. From 7f6df0304a070e97509b11c1b60ae64b55f9486e Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 10 Oct 2025 11:07:29 +0200 Subject: [PATCH 47/69] sync nb translations with no translations --- .../Resources/translations/validators.nb.xlf | 2 +- .../Resources/translations/security.nb.xlf | 2 +- .../Resources/translations/validators.nb.xlf | 86 +++++++++---------- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.nb.xlf b/src/Symfony/Component/Form/Resources/translations/validators.nb.xlf index 193306b7191ed..0dd82d3f39064 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.nb.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.nb.xlf @@ -12,7 +12,7 @@ The CSRF token is invalid. Please try to resubmit the form. - CSRF-tokenen er ugyldig. Vennligst prøv å sende inn skjemaet på nytt. + CSRF-tokenen er ugyldig. Vennligst prøv å sende inn skjemaet på nytt. This value is not a valid HTML5 color. diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.nb.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.nb.xlf index 9ace014112098..9f960cd1d8f79 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.nb.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.nb.xlf @@ -76,7 +76,7 @@ Too many failed login attempts, please try again in %minutes% minutes. - For mange mislykkede påloggingsforsøk, prøv igjen om %minutes% minutter. + For mange mislykkede påloggingsforsøk, prøv igjen om %minutes% minutter. diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.nb.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.nb.xlf index a815654559a07..11ce9777bbd3f 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.nb.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.nb.xlf @@ -136,7 +136,7 @@ This value is not a valid IP address. - Denne verdien er ikke en gyldig IP-adresse. + Denne verdien er ikke en gyldig IP-adresse. This value is not a valid language. @@ -192,7 +192,7 @@ No temporary folder was configured in php.ini, or the configured folder does not exist. - Ingen midlertidig mappe ble konfigurert i php.ini, eller den konfigurerte mappen eksisterer ikke. + Ingen midlertidig mappe ble konfigurert i php.ini, eller den konfigurerte mappen eksisterer ikke. Cannot write temporary file to disk. @@ -224,7 +224,7 @@ This value is not a valid International Bank Account Number (IBAN). - Denne verdien er ikke et gyldig internasjonalt bankkontonummer (IBAN). + Denne verdien er ikke et gyldig internasjonalt bankkontonummer (IBAN). This value is not a valid ISBN-10. @@ -312,7 +312,7 @@ This value is not a valid Business Identifier Code (BIC). - Denne verdien er ikke en gyldig forretningsidentifikasjonskode (BIC). + Denne verdien er ikke en gyldig forretningsidentifikasjonskode (BIC). Error @@ -320,7 +320,7 @@ This value is not a valid UUID. - Denne verdien er ikke en gyldig UUID. + Denne verdien er ikke en gyldig UUID. This value should be a multiple of {{ compared_value }}. @@ -404,155 +404,155 @@ The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less. - Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.|Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre. + Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre.|Filnavnet er for langt. Det bør ha {{ filename_max_length }} tegn eller mindre. The password strength is too low. Please use a stronger password. - Passordstyrken er for lav. Vennligst bruk et sterkere passord. + Passordstyrken er for lav. Vennligst bruk et sterkere passord. This value contains characters that are not allowed by the current restriction-level. - Denne verdien inneholder tegn som ikke er tillatt av gjeldende restriksjonsnivå. + Denne verdien inneholder tegn som ikke er tillatt av gjeldende restriksjonsnivå. Using invisible characters is not allowed. - Det er ikke tillatt å bruke usynlige tegn. + Det er ikke tillatt å bruke usynlige tegn. Mixing numbers from different scripts is not allowed. - Det er ikke tillatt å blande tall fra forskjellige skript. + Det er ikke tillatt å blande tall fra forskjellige skript. Using hidden overlay characters is not allowed. - Det er ikke tillatt å bruke skjulte overleggskarakterer. + Det er ikke tillatt å bruke skjulte overleggskarakterer. The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}. - Filutvidelsen er ugyldig ({{ extension }}). Tillatte utvidelser er {{ extensions }}. + Filutvidelsen er ugyldig ({{ extension }}). Tillatte utvidelser er {{ extensions }}. The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}. - Den oppdagede tegnkodingen er ugyldig ({{ detected }}). Tillatte kodinger er {{ encodings }}. + Den oppdagede tegnkodingen er ugyldig ({{ detected }}). Tillatte kodinger er {{ encodings }}. This value is not a valid MAC address. - Denne verdien er ikke en gyldig MAC-adresse. + Denne verdien er ikke en gyldig MAC-adresse. This URL is missing a top-level domain. - Denne URL-en mangler et toppnivådomene. + Denne URL-en mangler et toppnivådomene. This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words. - Denne verdien er for kort. Den bør inneholde minst ett ord.|Denne verdien er for kort. Den bør inneholde minst {{ min }} ord. + Denne verdien er for kort. Den bør inneholde minst ett ord.|Denne verdien er for kort. Den bør inneholde minst {{ min }} ord. This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - Denne verdien er for lang. Den bør inneholde kun ett ord.|Denne verdien er for lang. Den bør inneholde {{ max }} ord eller færre. + Denne verdien er for lang. Den bør inneholde kun ett ord.|Denne verdien er for lang. Den bør inneholde {{ max }} ord eller færre. This value does not represent a valid week in the ISO 8601 format. - Denne verdien representerer ikke en gyldig uke i ISO 8601-formatet. + Denne verdien representerer ikke en gyldig uke i ISO 8601-formatet. This value is not a valid week. - Denne verdien er ikke en gyldig uke. + Denne verdien er ikke en gyldig uke. This value should not be before week "{{ min }}". - Denne verdien bør ikke være før uke "{{ min }}". + Denne verdien bør ikke være før uke "{{ min }}". This value should not be after week "{{ max }}". - Denne verdien bør ikke være etter uke "{{ max }}". + Denne verdien bør ikke være etter uke "{{ max }}". This value is not a valid Twig template. - Denne verdien er ikke en gyldig Twig-mal. + Denne verdien er ikke en gyldig Twig-mal. This file is not a valid video. - Denne filen er ikke en gyldig video. + Denne filen er ikke en gyldig video. The size of the video could not be detected. - Videostørrelsen kunne ikke oppdages. + Videostørrelsen kunne ikke oppdages. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Videobredden er for stor ({{ width }}px). Tillatt maksimal bredde er {{ max_width }}px. + Videobredden er for stor ({{ width }}px). Tillatt maksimal bredde er {{ max_width }}px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Videobredden er for liten ({{ width }}px). Forventet minimumsbredde er {{ min_width }}px. + Videobredden er for liten ({{ width }}px). Forventet minimumsbredde er {{ min_width }}px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Videohøyden er for stor ({{ height }}px). Tillatt maksimal høyde er {{ max_height }}px. + Videohøyden er for stor ({{ height }}px). Tillatt maksimal høyde er {{ max_height }}px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Videoens høyde er for liten ({{ height }}px). Forventet minstehøyde er {{ min_height }}px. + Videoens høyde er for liten ({{ height }}px). Forventet minstehøyde er {{ min_height }}px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Videoen har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}. + Videoen har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Videoen har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}. + Videoen har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Video-forholdet er for stort ({{ ratio }}). Tillatt maksimalt forhold er {{ max_ratio }}. + Video-forholdet er for stort ({{ ratio }}). Tillatt maksimalt forhold er {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Videoforholdet er for lite ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}. + Videoforholdet er for lite ({{ ratio }}). Forventet minimumsforhold er {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tillatt. + Videoen er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske videoer er ikke tillatt. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tillatt. + Videoen er i liggende format ({{ width }}x{{ height }} px). Liggende videoer er ikke tillatt. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Videoen er i portrettformat ({{ width }}x{{ height }}px). Portrettvideoer er ikke tillatt. + Videoen er i portrettformat ({{ width }}x{{ height }}px). Portrettvideoer er ikke tillatt. The video file is corrupted. - Videofilen er ødelagt. + Videofilen er ødelagt. The video contains multiple streams. Only one stream is allowed. - Videoen inneholder flere strømmer. Kun én strøm er tillatt. + Videoen inneholder flere strømmer. Kun én strøm er tillatt. Unsupported video codec "{{ codec }}". - Ikke støttet videokodek «{{ codec }}». + Ikke støttet videokodek «{{ codec }}». Unsupported video container "{{ container }}". - Ikke-støttet videokontainer "{{ container }}". + Ikke-støttet videokontainer "{{ container }}". The image file is corrupted. - Bildefilen er ødelagt. + Bildefilen er ødelagt. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Bildet har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}. + Bildet har for få piksler ({{ pixels }}). Forventet minimum er {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Bildet har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}. + Bildet har for mange piksler ({{ pixels }}). Forventet maksimalt antall er {{ max_pixels }}. This filename does not match the expected charset. - Dette filnavnet samsvarer ikke med forventet tegnsett. + Dette filnavnet samsvarer ikke med forventet tegnsett. From e11c9aa5a9fa96e20fd7394f5594d52e7b30088e Mon Sep 17 00:00:00 2001 From: Thomas Baccelli Date: Fri, 10 Oct 2025 22:26:12 +0200 Subject: [PATCH 48/69] filter should be empty when filtering on all domains --- .../Translation/Bridge/Loco/LocoProvider.php | 2 +- .../Bridge/Loco/Tests/LocoProviderTest.php | 52 +++++++++++++------ 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php b/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php index 95121caee612b..9b8d721b54f2c 100644 --- a/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php +++ b/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php @@ -106,7 +106,7 @@ public function read(array $domains, array $locales): TranslatorBag // Loco forbids concurrent requests, so the requests must be synchronous in order to prevent "429 Too Many Requests" errors. $response = $this->client->request('GET', \sprintf('export/locale/%s.xlf', rawurlencode($locale)), [ 'query' => [ - 'filter' => $domain, + 'filter' => '*' !== $domain ? $domain : '', 'status' => 'translated,blank-translation', ], 'headers' => [ diff --git a/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php b/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php index 5ce4cf03f3541..203e98f0990cc 100644 --- a/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php +++ b/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php @@ -967,8 +967,7 @@ public static function getResponsesForOneLocaleAndOneDomain(): \Generator -XLIFF - , +XLIFF, $expectedTranslatorBagEn, ]; @@ -997,8 +996,7 @@ public static function getResponsesForOneLocaleAndOneDomain(): \Generator -XLIFF - , +XLIFF, $expectedTranslatorBagFr, ]; } @@ -1049,8 +1047,7 @@ public static function getResponsesForManyLocalesAndManyDomains(): \Generator -XLIFF - , +XLIFF, 'messages+intl-icu' => <<<'XLIFF' @@ -1066,8 +1063,7 @@ public static function getResponsesForManyLocalesAndManyDomains(): \Generator -XLIFF - , +XLIFF, 'validators' => <<<'XLIFF' @@ -1087,8 +1083,7 @@ public static function getResponsesForManyLocalesAndManyDomains(): \Generator -XLIFF - , +XLIFF, ], 'fr' => [ 'messages' => <<<'XLIFF' @@ -1106,8 +1101,7 @@ public static function getResponsesForManyLocalesAndManyDomains(): \Generator -XLIFF - , +XLIFF, 'messages+intl-icu' => <<<'XLIFF' @@ -1123,8 +1117,7 @@ public static function getResponsesForManyLocalesAndManyDomains(): \Generator -XLIFF - , +XLIFF, 'validators' => <<<'XLIFF' @@ -1144,8 +1137,7 @@ public static function getResponsesForManyLocalesAndManyDomains(): \Generator -XLIFF - , +XLIFF, ], ], $expectedTranslatorBag, @@ -1170,4 +1162,32 @@ public static function getResponsesForReadWithLastModified(): \Generator yield [$locales, $domains, $responseContents, $lastModifieds, $expectedTranslatorBag]; } } + + public function testReadForAllDomains() + { + $loader = $this->getLoader(); + + $loader + ->expects($this->once()) + ->method('load') + ->willReturn($this->createMock(MessageCatalogue::class)); + + $provider = self::createProvider( + new MockHttpClient([ + function (string $method, string $url, array $options = []): ResponseInterface { + $this->assertSame('GET', $method); + $this->assertSame('https://localise.biz/api/export/locale/fr.xlf?filter=&status=translated%2Cblank-translation', $url); + $this->assertSame(['filter' => '', 'status' => 'translated,blank-translation'], $options['query']); + + return new MockResponse(); + }, + ], 'https://localise.biz/api/'), + $this->getLoader(), + $this->getLogger(), + $this->getDefaultLocale(), + 'localise.biz/api/', + ); + + $this->translatorBag = $provider->read(['*'], ['fr']); + } } From 7644e9d6e362b0a852e84e112037b1b8223e7151 Mon Sep 17 00:00:00 2001 From: HypeMC Date: Sat, 11 Oct 2025 19:35:31 +0200 Subject: [PATCH 49/69] [DebugBundle] Wire `DumpDataCollector`'s `webMode` argument --- src/Symfony/Bundle/DebugBundle/Resources/config/services.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Bundle/DebugBundle/Resources/config/services.php b/src/Symfony/Bundle/DebugBundle/Resources/config/services.php index ea2d057310f88..0193f65a2779a 100644 --- a/src/Symfony/Bundle/DebugBundle/Resources/config/services.php +++ b/src/Symfony/Bundle/DebugBundle/Resources/config/services.php @@ -52,6 +52,7 @@ param('kernel.charset'), service('.virtual_request_stack'), null, // var_dumper.cli_dumper or var_dumper.server_connection when debug.dump_destination is set + param('kernel.runtime_mode.web'), ]) ->tag('data_collector', [ 'id' => 'dump', From 742ff2fec2b2d68d6f8bc1351391fcb8cce1d629 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 13 Oct 2025 10:59:34 +0200 Subject: [PATCH 50/69] [AssetMapper] Fix tests --- .../AssetMapper/Tests/Compressor/BrotliCompressorTest.php | 4 ++-- .../AssetMapper/Tests/Compressor/ZstandardCompressorTest.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/AssetMapper/Tests/Compressor/BrotliCompressorTest.php b/src/Symfony/Component/AssetMapper/Tests/Compressor/BrotliCompressorTest.php index c56bbe71f760b..5309277c5c63a 100644 --- a/src/Symfony/Component/AssetMapper/Tests/Compressor/BrotliCompressorTest.php +++ b/src/Symfony/Component/AssetMapper/Tests/Compressor/BrotliCompressorTest.php @@ -22,7 +22,7 @@ class BrotliCompressorTest extends TestCase { private const WRITABLE_ROOT = __DIR__.'/../Fixtures/brotli_compressor_filesystem'; - private Filesystem $filesystem; + private ?Filesystem $filesystem = null; protected function setUp(): void { @@ -38,7 +38,7 @@ protected function setUp(): void protected function tearDown(): void { - $this->filesystem->remove(self::WRITABLE_ROOT); + $this->filesystem?->remove(self::WRITABLE_ROOT); } public function testCompress() diff --git a/src/Symfony/Component/AssetMapper/Tests/Compressor/ZstandardCompressorTest.php b/src/Symfony/Component/AssetMapper/Tests/Compressor/ZstandardCompressorTest.php index cd6968cbebba6..329c43c7344e9 100644 --- a/src/Symfony/Component/AssetMapper/Tests/Compressor/ZstandardCompressorTest.php +++ b/src/Symfony/Component/AssetMapper/Tests/Compressor/ZstandardCompressorTest.php @@ -22,7 +22,7 @@ class ZstandardCompressorTest extends TestCase { private const WRITABLE_ROOT = __DIR__.'/../Fixtures/zstandard_compressor_filesystem'; - private Filesystem $filesystem; + private ?Filesystem $filesystem = null; protected function setUp(): void { @@ -38,7 +38,7 @@ protected function setUp(): void protected function tearDown(): void { - $this->filesystem->remove(self::WRITABLE_ROOT); + $this->filesystem?->remove(self::WRITABLE_ROOT); } public function testCompress() From 9e5e32b8b96edfe0d148428cdcc69aff08e8b9ba Mon Sep 17 00:00:00 2001 From: Pierre du Plessis Date: Fri, 10 Oct 2025 17:31:14 +0200 Subject: [PATCH 51/69] Fix generating logout link with stateless csrf --- .../Security/Http/Firewall/LogoutListener.php | 2 +- .../Tests/Firewall/LogoutListenerTest.php | 44 +++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Security/Http/Firewall/LogoutListener.php b/src/Symfony/Component/Security/Http/Firewall/LogoutListener.php index 13a88dd480c75..dcd12fbf3a9fa 100644 --- a/src/Symfony/Component/Security/Http/Firewall/LogoutListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/LogoutListener.php @@ -69,7 +69,7 @@ public function authenticate(RequestEvent $event): void $request = $event->getRequest(); if (null !== $this->csrfTokenManager) { - $csrfToken = ParameterBagUtils::getRequestParameterValue($request, $this->options['csrf_parameter']); + $csrfToken = ParameterBagUtils::getRequestParameterValue($request, $this->options['csrf_parameter'], $request->request->all()); if (!\is_string($csrfToken) || false === $this->csrfTokenManager->isTokenValid(new CsrfToken($this->options['csrf_token_id'], $csrfToken))) { throw new LogoutException('Invalid CSRF token.'); diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php index c7cdc7abd216a..0bfdef4587ca8 100644 --- a/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php +++ b/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php @@ -20,6 +20,7 @@ use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Exception\LogoutException; +use Symfony\Component\Security\Csrf\CsrfToken; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; use Symfony\Component\Security\Http\Event\LogoutEvent; use Symfony\Component\Security\Http\Firewall\LogoutListener; @@ -88,6 +89,49 @@ public function testHandleMatchedPathWithCsrfValidation() $this->assertSame($response, $event->getResponse()); } + public function testHandleMatchedPathWithCsrfInQueryParamAndBody() + { + $tokenManager = $this->getTokenManager(); + $dispatcher = $this->getEventDispatcher(); + + [$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($dispatcher, $tokenManager); + + $request = new Request(); + $request->query->set('_csrf_token', 'token'); + $request->request->set('_csrf_token', 'token2'); + + $httpUtils->expects($this->once()) + ->method('checkRequestPath') + ->with($request, $options['logout_path']) + ->willReturn(true); + + $tokenManager->expects($this->once()) + ->method('isTokenValid') + ->with($this->callback(function ($token) { + return $token instanceof CsrfToken && 'token2' === $token->getValue(); + })) + ->willReturn(true); + + $response = new Response(); + $dispatcher->addListener(LogoutEvent::class, function (LogoutEvent $event) use ($response) { + $event->setResponse($response); + }); + + $tokenStorage->expects($this->once()) + ->method('getToken') + ->willReturn($token = $this->getToken()); + + $tokenStorage->expects($this->once()) + ->method('setToken') + ->with(null); + + $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST); + + $listener($event); + + $this->assertSame($response, $event->getResponse()); + } + public function testHandleMatchedPathWithoutCsrfValidation() { $dispatcher = $this->getEventDispatcher(); From 502d28fadd62018df94e64a07e46d5b3bb3db7a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Mon, 13 Oct 2025 12:10:33 +0200 Subject: [PATCH 52/69] Document BC break in AbstractController::render --- UPGRADE-6.4.md | 1 + src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md | 1 + 2 files changed, 2 insertions(+) diff --git a/UPGRADE-6.4.md b/UPGRADE-6.4.md index 65e26337ac4ef..071d5d3b692b1 100644 --- a/UPGRADE-6.4.md +++ b/UPGRADE-6.4.md @@ -126,6 +126,7 @@ FrameworkBundle --------------- * [BC break] Add native return type to `Translator` and to `Application::reset()` + * `AbstractController::render()` no longer calls `renderView()` * Deprecate the integration of Doctrine annotations, either uninstall the `doctrine/annotations` package or disable the integration by setting `framework.annotations` to `false` * Deprecate not setting some config options, their defaults will change in Symfony 7.0: diff --git a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md index 949aad31c3472..639fe721d2be7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md +++ b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md @@ -6,6 +6,7 @@ CHANGELOG * Add `HttpClientAssertionsTrait` * Add `AbstractController::renderBlock()` and `renderBlockView()` + * Remove call to `renderView()` in `AbstractController::render()` * Add native return type to `Translator` and to `Application::reset()` * Deprecate the integration of Doctrine annotations, either uninstall the `doctrine/annotations` package or disable the integration by setting `framework.annotations` to `false` * Enable `json_decode_detailed_errors` context for Serializer by default if `kernel.debug` is true and the `seld/jsonlint` package is installed From 8621286402aa13938ba348c5297154e614945f6a Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 13 Oct 2025 16:28:07 +0200 Subject: [PATCH 53/69] [AssetMapper] Fix links to propshaft --- .../Component/AssetMapper/Compiler/CssAssetUrlCompiler.php | 4 ++-- .../AssetMapper/Compiler/SourceMappingUrlsCompiler.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php b/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php index 28b06508a6876..4f9442214dc66 100644 --- a/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php +++ b/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php @@ -20,7 +20,7 @@ /** * Resolves url() paths in CSS files. * - * Originally sourced from https://github.com/rails/propshaft/blob/main/lib/propshaft/compilers/css_asset_urls.rb + * Originally sourced from https://github.com/rails/propshaft/blob/main/lib/propshaft/compiler/css_asset_urls.rb */ final class CssAssetUrlCompiler implements AssetCompilerInterface { @@ -51,7 +51,7 @@ public function compile(string $content, MappedAsset $asset, AssetMapperInterfac return preg_replace_callback(self::ASSET_URL_PATTERN, function ($matches) use ($asset, $assetMapper, $commentBlocks) { $matchPos = $matches[0][1]; - // Ignore matchs inside comments + // Ignore matches inside comments foreach ($commentBlocks as $block) { if ($matchPos > $block[0]) { if ($matchPos < $block[1]) { diff --git a/src/Symfony/Component/AssetMapper/Compiler/SourceMappingUrlsCompiler.php b/src/Symfony/Component/AssetMapper/Compiler/SourceMappingUrlsCompiler.php index 3981fa6c629cb..34852d598bfc5 100644 --- a/src/Symfony/Component/AssetMapper/Compiler/SourceMappingUrlsCompiler.php +++ b/src/Symfony/Component/AssetMapper/Compiler/SourceMappingUrlsCompiler.php @@ -18,11 +18,11 @@ /** * Rewrites already-existing source map URLs to their final digested path. * - * Originally sourced from https://github.com/rails/propshaft/blob/main/lib/propshaft/compilers/source_mapping_urls.rb + * Originally sourced from https://github.com/rails/propshaft/blob/main/lib/propshaft/compiler/source_mapping_urls.rb */ final class SourceMappingUrlsCompiler implements AssetCompilerInterface { - private const SOURCE_MAPPING_PATTERN = '/^(\/\/|\/\*)# sourceMappingURL=(.+\.map)/m'; + private const SOURCE_MAPPING_PATTERN = '{^(//|/\*)# sourceMappingURL=(.+\.map)}m'; public function supports(MappedAsset $asset): bool { From 6fb1052445057be4ff51cdbf05a1f8dd52c0e802 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 13 Oct 2025 18:19:02 +0200 Subject: [PATCH 54/69] [AssetMapper] Fix parsing @import that don't use url() --- .../Compiler/CssAssetUrlCompiler.php | 24 +++-- .../Resolver/JsDelivrEsmResolver.php | 2 +- .../Compiler/CssAssetUrlCompilerTest.php | 98 ++++++++++++++++++- 3 files changed, 111 insertions(+), 13 deletions(-) diff --git a/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php b/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php index 4f9442214dc66..08ba51050748a 100644 --- a/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php +++ b/src/Symfony/Component/AssetMapper/Compiler/CssAssetUrlCompiler.php @@ -24,8 +24,16 @@ */ final class CssAssetUrlCompiler implements AssetCompilerInterface { - // https://regex101.com/r/BOJ3vG/1 - public const ASSET_URL_PATTERN = '/url\(\s*["\']?(?!(?:\/|\#|%23|data|http|\/\/))([^"\'\s?#)]+)([#?][^"\')]+)?\s*["\']?\)/'; + // https://regex101.com/r/BOJ3vG/2 + public const ASSET_URL_PATTERN = <<<'REGEX' + { + (?| + (url\()\s*+["']?(?!(?:/|\#|%23|data|http|//))([^"')\s?#]++)(?:[?#][^"')]++)?["']?\s*+(\)) + | + (@import\s++)["'](?!(?:/|\#|%23|data|http|//))([^"')\s?#]++)(?:[?#][^"')]++)?["'] + ) + }x + REGEX; public function __construct( private readonly string $missingImportMode = self::MISSING_IMPORT_WARN, @@ -62,16 +70,16 @@ public function compile(string $content, MappedAsset $asset, AssetMapperInterfac } try { - $resolvedSourcePath = Path::join(\dirname($asset->sourcePath), $matches[1]); + $resolvedSourcePath = Path::join(\dirname($asset->sourcePath), $matches[2][0]); } catch (RuntimeException $e) { $this->handleMissingImport(\sprintf('Error processing import in "%s": ', $asset->sourcePath).$e->getMessage(), $e); - return $matches[0]; + return $matches[0][0]; } $dependentAsset = $assetMapper->getAssetFromSourcePath($resolvedSourcePath); if (null === $dependentAsset) { - $message = \sprintf('Unable to find asset "%s" referenced in "%s". The file "%s" ', $matches[1], $asset->sourcePath, $resolvedSourcePath); + $message = \sprintf('Unable to find asset "%s" referenced in "%s". The file "%s" ', $matches[2][0], $asset->sourcePath, $resolvedSourcePath); if (is_file($resolvedSourcePath)) { $message .= 'exists, but it is not in a mapped asset path. Add it to the "paths" config.'; } else { @@ -80,14 +88,14 @@ public function compile(string $content, MappedAsset $asset, AssetMapperInterfac $this->handleMissingImport($message); // return original, unchanged path - return $matches[0]; + return $matches[0][0]; } $asset->addDependency($dependentAsset); $relativePath = Path::makeRelative($dependentAsset->publicPath, \dirname($asset->publicPathWithoutDigest)); - return 'url("'.$relativePath.'")'; - }, $content); + return $matches[1][0].'"'.$relativePath.'"'.($matches[3][0] ?? ''); + }, $content, -1, $count, \PREG_OFFSET_CAPTURE); } public function supports(MappedAsset $asset): bool diff --git a/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php b/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php index a707eb108349a..dc3083812227e 100644 --- a/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php +++ b/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php @@ -318,7 +318,7 @@ private function makeImportsBare(string $content, array &$dependencies, array &$ } preg_match_all(CssAssetUrlCompiler::ASSET_URL_PATTERN, $content, $matches); - foreach ($matches[1] as $path) { + foreach ($matches[2] as $path) { if (str_starts_with($path, 'data:')) { continue; } diff --git a/src/Symfony/Component/AssetMapper/Tests/Compiler/CssAssetUrlCompilerTest.php b/src/Symfony/Component/AssetMapper/Tests/Compiler/CssAssetUrlCompilerTest.php index 067168b059a71..2ba4168dbe8f4 100644 --- a/src/Symfony/Component/AssetMapper/Tests/Compiler/CssAssetUrlCompilerTest.php +++ b/src/Symfony/Component/AssetMapper/Tests/Compiler/CssAssetUrlCompilerTest.php @@ -62,14 +62,12 @@ public static function provideCompileTests(): iterable body { background: url("images/foo.png"); } - EOF - , + EOF, 'expectedOutput' => << ['images/foo.png'], ]; @@ -144,6 +142,80 @@ public static function provideCompileTests(): iterable }', 'expectedDependencies' => ['images/foo.png'], ]; + + yield 'import_without_url_double_quotes' => [ + 'input' => '@import "more-styles.css"', + 'expectedOutput' => '@import "more-styles.abcd123.css"', + 'expectedDependencies' => ['more-styles.css'], + ]; + + yield 'import_without_url_single_quotes' => [ + 'input' => "@import 'more-styles.css'", + 'expectedOutput' => '@import "more-styles.abcd123.css"', + 'expectedDependencies' => ['more-styles.css'], + ]; + + yield 'import_without_url_with_media_query' => [ + 'input' => '@import "more-styles.css" screen', + 'expectedOutput' => '@import "more-styles.abcd123.css" screen', + 'expectedDependencies' => ['more-styles.css'], + ]; + + yield 'import_without_url_with_media_query_single_quotes' => [ + 'input' => "@import 'more-styles.css' screen and (max-width: 600px)", + 'expectedOutput' => '@import "more-styles.abcd123.css" screen and (max-width: 600px)', + 'expectedDependencies' => ['more-styles.css'], + ]; + + yield 'import_without_url_with_dot_slash' => [ + 'input' => '@import "./more-styles.css"', + 'expectedOutput' => '@import "more-styles.abcd123.css"', + 'expectedDependencies' => ['more-styles.css'], + ]; + + yield 'import_without_url_with_dot_dot_slash' => [ + 'input' => '@import "../assets/more-styles.css"', + 'expectedOutput' => '@import "more-styles.abcd123.css"', + 'expectedDependencies' => ['more-styles.css'], + ]; + + yield 'import_without_url_absolute_path_ignored' => [ + 'input' => '@import "/path/to/more-styles.css"', + 'expectedOutput' => '@import "/path/to/more-styles.css"', + 'expectedDependencies' => [], + ]; + + yield 'import_without_url_http_url_ignored' => [ + 'input' => '@import "https://cdn.io/more-styles.css"', + 'expectedOutput' => '@import "https://cdn.io/more-styles.css"', + 'expectedDependencies' => [], + ]; + + yield 'import_without_url_data_uri_ignored' => [ + 'input' => '@import "data:text/css;base64,LmJvZHkgeyBiYWNrZ3JvdW5kOiByZWQ7IH0="', + 'expectedOutput' => '@import "data:text/css;base64,LmJvZHkgeyBiYWNrZ3JvdW5kOiByZWQ7IH0="', + 'expectedDependencies' => [], + ]; + + yield 'import_without_url_in_comments_ignored' => [ + 'input' => 'body { background: url("images/foo.png"); } /* @import "more-styles.css" */', + 'expectedOutput' => 'body { background: url("images/foo.123456.png"); } /* @import "more-styles.css" */', + 'expectedDependencies' => ['images/foo.png'], + ]; + + yield 'mixed_url_and_import_without_url' => [ + 'input' => << << ['more-styles.css', 'images/foo.png', 'more-styles.css'], + ]; } public function testCompileFindsRelativeFilesViaSourcePath() @@ -223,5 +295,23 @@ public static function provideStrictModeTests(): iterable 'input' => "background-image: url(\'data:image/png;base64,iVBORw0KG\')", 'expectedExceptionMessage' => null, ]; + + yield 'importing_non_existent_file_without_url_throws_exception' => [ + 'sourceLogicalName' => 'styles.css', + 'input' => '@import "non-existent.css"', + 'expectedExceptionMessage' => 'Unable to find asset "non-existent.css" referenced in "/path/to/styles.css".', + ]; + + yield 'importing_absolute_file_path_without_url_is_ignored' => [ + 'sourceLogicalName' => 'styles.css', + 'input' => '@import "/path/to/non-existent.css"', + 'expectedExceptionMessage' => null, + ]; + + yield 'importing_a_url_without_url_is_ignored' => [ + 'sourceLogicalName' => 'styles.css', + 'input' => '@import "https://cdn.io/non-existent.css"', + 'expectedExceptionMessage' => null, + ]; } } From c47df37de1d3800b55d9327b00f659675c5fc0b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Tue, 14 Oct 2025 14:22:15 +0200 Subject: [PATCH 55/69] [MonologBridge] Improve error when HttpClient contract is installed but not the component --- .../Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php b/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php index 8d243f8da72f1..1751e3af96705 100644 --- a/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php +++ b/src/Symfony/Bridge/Monolog/Handler/ElasticsearchLogstashHandler.php @@ -63,7 +63,7 @@ class ElasticsearchLogstashHandler extends AbstractHandler public function __construct(string $endpoint = 'http://127.0.0.1:9200', string $index = 'monolog', ?HttpClientInterface $client = null, string|int|Level $level = Logger::DEBUG, bool $bubble = true, string $elasticsearchVersion = '1.0.0') { - if (!interface_exists(HttpClientInterface::class)) { + if (!$client && !class_exists(HttpClient::class)) { throw new \LogicException(\sprintf('The "%s" handler needs an HTTP client. Try running "composer require symfony/http-client".', __CLASS__)); } From 8da524e5c748d34ef5ce4ecc8b8877e481b0a7ba Mon Sep 17 00:00:00 2001 From: Takashi Kanemoto Date: Tue, 14 Oct 2025 13:29:35 +0900 Subject: [PATCH 56/69] [Console] ensure `SHELL_VERBOSITY` is always restored properly --- src/Symfony/Component/Console/Application.php | 83 ++++++------------- .../Component/HttpKernel/Log/Logger.php | 20 ++--- 2 files changed, 34 insertions(+), 69 deletions(-) diff --git a/src/Symfony/Component/Console/Application.php b/src/Symfony/Component/Console/Application.php index 527638298e6f5..87b536fb364ca 100644 --- a/src/Symfony/Component/Console/Application.php +++ b/src/Symfony/Component/Console/Application.php @@ -186,7 +186,8 @@ public function run(?InputInterface $input = null, ?OutputInterface $output = nu } } - $prevShellVerbosity = getenv('SHELL_VERBOSITY'); + $empty = new \stdClass(); + $prevShellVerbosity = [$_ENV['SHELL_VERBOSITY'] ?? $empty, $_SERVER['SHELL_VERBOSITY'] ?? $empty, getenv('SHELL_VERBOSITY')]; try { $this->configureIO($input, $output); @@ -228,18 +229,14 @@ public function run(?InputInterface $input = null, ?OutputInterface $output = nu // SHELL_VERBOSITY is set by Application::configureIO so we need to unset/reset it // to its previous value to avoid one command verbosity to spread to other commands - if (false === $prevShellVerbosity) { - if (\function_exists('putenv')) { - @putenv('SHELL_VERBOSITY'); - } + if ($empty === $_ENV['SHELL_VERBOSITY'] = $prevShellVerbosity[0]) { unset($_ENV['SHELL_VERBOSITY']); + } + if ($empty === $_SERVER['SHELL_VERBOSITY'] = $prevShellVerbosity[1]) { unset($_SERVER['SHELL_VERBOSITY']); - } else { - if (\function_exists('putenv')) { - @putenv('SHELL_VERBOSITY='.$prevShellVerbosity); - } - $_ENV['SHELL_VERBOSITY'] = $prevShellVerbosity; - $_SERVER['SHELL_VERBOSITY'] = $prevShellVerbosity; + } + if (\function_exists('putenv')) { + @putenv('SHELL_VERBOSITY'.(false === ($prevShellVerbosity[2] ?? false) ? '' : '='.$prevShellVerbosity[2])); } } @@ -945,57 +942,31 @@ protected function doRenderThrowable(\Throwable $e, OutputInterface $output): vo */ protected function configureIO(InputInterface $input, OutputInterface $output): void { - if (true === $input->hasParameterOption(['--ansi'], true)) { + if ($input->hasParameterOption(['--ansi'], true)) { $output->setDecorated(true); - } elseif (true === $input->hasParameterOption(['--no-ansi'], true)) { + } elseif ($input->hasParameterOption(['--no-ansi'], true)) { $output->setDecorated(false); } - if (true === $input->hasParameterOption(['--no-interaction', '-n'], true)) { - $input->setInteractive(false); - } - - switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) { - case -2: - $output->setVerbosity(OutputInterface::VERBOSITY_SILENT); - break; - case -1: - $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); - break; - case 1: - $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); - break; - case 2: - $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); - break; - case 3: - $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); - break; - default: - $shellVerbosity = 0; - break; - } + $shellVerbosity = match (true) { + $input->hasParameterOption(['--silent'], true) => -2, + $input->hasParameterOption(['--quiet', '-q'], true) => -1, + $input->hasParameterOption('-vvv', true) || $input->hasParameterOption('--verbose=3', true) || 3 === $input->getParameterOption('--verbose', false, true) => 3, + $input->hasParameterOption('-vv', true) || $input->hasParameterOption('--verbose=2', true) || 2 === $input->getParameterOption('--verbose', false, true) => 2, + $input->hasParameterOption('-v', true) || $input->hasParameterOption('--verbose=1', true) || $input->hasParameterOption('--verbose', true) || $input->getParameterOption('--verbose', false, true) => 1, + default => (int) ($_ENV['SHELL_VERBOSITY'] ?? $_SERVER['SHELL_VERBOSITY'] ?? getenv('SHELL_VERBOSITY')), + }; - if (true === $input->hasParameterOption(['--silent'], true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_SILENT); - $shellVerbosity = -2; - } elseif (true === $input->hasParameterOption(['--quiet', '-q'], true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); - $shellVerbosity = -1; - } else { - if ($input->hasParameterOption('-vvv', true) || $input->hasParameterOption('--verbose=3', true) || 3 === $input->getParameterOption('--verbose', false, true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); - $shellVerbosity = 3; - } elseif ($input->hasParameterOption('-vv', true) || $input->hasParameterOption('--verbose=2', true) || 2 === $input->getParameterOption('--verbose', false, true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); - $shellVerbosity = 2; - } elseif ($input->hasParameterOption('-v', true) || $input->hasParameterOption('--verbose=1', true) || $input->hasParameterOption('--verbose', true) || $input->getParameterOption('--verbose', false, true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); - $shellVerbosity = 1; - } - } + $output->setVerbosity(match ($shellVerbosity) { + -2 => OutputInterface::VERBOSITY_SILENT, + -1 => OutputInterface::VERBOSITY_QUIET, + 1 => OutputInterface::VERBOSITY_VERBOSE, + 2 => OutputInterface::VERBOSITY_VERY_VERBOSE, + 3 => OutputInterface::VERBOSITY_DEBUG, + default => ($shellVerbosity = 0) ?: $output->getVerbosity(), + }); - if (0 > $shellVerbosity) { + if (0 > $shellVerbosity || $input->hasParameterOption(['--no-interaction', '-n'], true)) { $input->setInteractive(false); } diff --git a/src/Symfony/Component/HttpKernel/Log/Logger.php b/src/Symfony/Component/HttpKernel/Log/Logger.php index 93c1dbc95b96e..407eb807247df 100644 --- a/src/Symfony/Component/HttpKernel/Log/Logger.php +++ b/src/Symfony/Component/HttpKernel/Log/Logger.php @@ -59,19 +59,13 @@ class Logger extends AbstractLogger implements DebugLoggerInterface */ public function __construct(?string $minLevel = null, $output = null, ?callable $formatter = null, private readonly ?RequestStack $requestStack = null, bool $debug = false) { - if (null === $minLevel) { - $minLevel = null === $output || 'php://stdout' === $output || 'php://stderr' === $output ? LogLevel::ERROR : LogLevel::WARNING; - - if (isset($_ENV['SHELL_VERBOSITY']) || isset($_SERVER['SHELL_VERBOSITY'])) { - $minLevel = match ((int) ($_ENV['SHELL_VERBOSITY'] ?? $_SERVER['SHELL_VERBOSITY'])) { - -1 => LogLevel::ERROR, - 1 => LogLevel::NOTICE, - 2 => LogLevel::INFO, - 3 => LogLevel::DEBUG, - default => $minLevel, - }; - } - } + $minLevel ??= match ((int) ($_ENV['SHELL_VERBOSITY'] ?? $_SERVER['SHELL_VERBOSITY'] ?? 0)) { + -1 => LogLevel::ERROR, + 1 => LogLevel::NOTICE, + 2 => LogLevel::INFO, + 3 => LogLevel::DEBUG, + default => null === $output || 'php://stdout' === $output || 'php://stderr' === $output ? LogLevel::ERROR : LogLevel::WARNING, + }; if (!isset(self::LEVELS[$minLevel])) { throw new InvalidArgumentException(\sprintf('The log level "%s" does not exist.', $minLevel)); From 82bbb9cffd4852565a9d7ab7d057f574d3c598b8 Mon Sep 17 00:00:00 2001 From: Marcus Jaschen Date: Fri, 10 Oct 2025 07:40:49 +0200 Subject: [PATCH 57/69] Update regular expression in URL validator To achieve better compatibility with RFC 3986, the regular expression which validates URLs now allows more characters in the userinfo part. Add test cases; update change log. --- .../Validator/Constraints/UrlValidator.php | 28 ++++++++++--------- .../Tests/Constraints/UrlValidatorTest.php | 2 ++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/Symfony/Component/Validator/Constraints/UrlValidator.php b/src/Symfony/Component/Validator/Constraints/UrlValidator.php index ba8208da7194b..55a545e8ba2a9 100644 --- a/src/Symfony/Component/Validator/Constraints/UrlValidator.php +++ b/src/Symfony/Component/Validator/Constraints/UrlValidator.php @@ -21,34 +21,36 @@ */ class UrlValidator extends ConstraintValidator { - public const PATTERN = '~^ + public const PATTERN = <<<'REGEX' + {^ (%s):// # protocol - (((?:[\_\.\pL\pN-]|%%[0-9A-Fa-f]{2})+:)?((?:[\_\.\pL\pN-]|%%[0-9A-Fa-f]{2})+)@)? # basic auth + ((?:[\pL\pN\-._~!$&'()*+,;=]|%%[0-9A-Fa-f]{2})++(?::(?:[:\pL\pN\-._~!$&'()*+,;=]|%%[0-9A-Fa-f]{2})*+)?@)? # basic auth ( (?: (?: (?:[\pL\pN\pS\pM\-\_]++\.)+ (?: - (?:xn--[a-z0-9-]++) # punycode in tld + (?:xn--[a-z0-9-]++) # punycode in tld | - (?:[\pL\pN\pM]++) # no punycode in tld + (?:[\pL\pN\pM]++) # no punycode in tld ) - ) # a multi-level domain name + ) # a multi-level domain name | - [a-z0-9\-\_]++ # a single-level domain name + [a-z0-9\-\_]++ # a single-level domain name )\.? - | # or - \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address - | # or + | # or + \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address + | # or \[ (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::)))) \] # an IPv6 address ) (:[0-9]+)? # a port (optional) - (?:/ (?:[\pL\pN\pS\pM\-._\~!$&\'()*+,;=:@]|%%[0-9A-Fa-f]{2})* )* # a path - (?:\? (?:[\pL\pN\-._\~!$&\'\[\]()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a query (optional) - (?:\# (?:[\pL\pN\-._\~!$&\'()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a fragment (optional) - $~ixuD'; + (?:/ (?:[\pL\pN\pS\pM\-._~!$&'()*+,;=:@]|%%[0-9A-Fa-f]{2})* )* # a path + (?:\? (?:[\pL\pN\-._~!$&'()*+,;=:@/?[\]]|%%[0-9A-Fa-f]{2})* )? # a query (optional) + (?:\# (?:[\pL\pN\-._~!$&'()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a fragment (optional) + $}ixuD + REGEX; /** * @return void diff --git a/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php index 27866b021742b..6fe8c67c7201a 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php @@ -209,6 +209,8 @@ public static function getValidUrls() ['http://বিডিআইএ.বাংলা'], ['http://www.example.com/คนแซ่ลี้/'], ['http://www.example.com/か/'], + ['https://l.o_g~i!n$u\'s(e)r*n+a,m;e=:p.a_s~s!w$o\'r(d)*+,;=secret@ftp.example.com/path/file.tar.gz'], + ['https://l(o)g%40in:pa$$+word%20secret@ftp.example.com/path/file.tar.gz'], ]; } From df20e131110d67952cddfe8f3acf49ebb463b4e8 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 15 Oct 2025 19:32:35 +0200 Subject: [PATCH 58/69] [FrameworkBundle] Fix secrets:encrypt-from-local --- .../Command/SecretsEncryptFromLocalCommand.php | 11 +++++------ .../DependencyInjection/Configuration.php | 2 +- .../Command/SecretsEncryptFromLocalCommandTest.php | 7 ++++--- .../Tests/DependencyInjection/ConfigurationTest.php | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php index 46e0baffc9242..0eba8956c0c3f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php @@ -61,14 +61,13 @@ protected function execute(InputInterface $input, OutputInterface $output): int } foreach ($this->vault->list(true) as $name => $value) { - $localValue = $this->localVault->reveal($name); + if (null === $localValue = $this->localVault->reveal($name)) { + continue; + } - if (null !== $localValue && $value !== $localValue) { + if ($value !== $localValue) { $this->vault->seal($name, $localValue); - } elseif (null !== $message = $this->localVault->getLastMessage()) { - $io->error($message); - - return 1; + $io->note($this->vault->getLastMessage()); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php index f33cae9d6f6e6..992c265a725a1 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php @@ -204,7 +204,7 @@ private function addSecretsSection(ArrayNodeDefinition $rootNode): void ->canBeDisabled() ->children() ->scalarNode('vault_directory')->defaultValue('%kernel.project_dir%/config/secrets/%kernel.runtime_environment%')->cannotBeEmpty()->end() - ->scalarNode('local_dotenv_file')->defaultValue('%kernel.project_dir%/.env.%kernel.environment%.local')->end() + ->scalarNode('local_dotenv_file')->defaultValue('%kernel.project_dir%/.env.%kernel.runtime_environment%.local')->end() ->scalarNode('decryption_env_var')->defaultValue('base64:default::SYMFONY_DECRYPTION_SECRET')->end() ->end() ->end() diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsEncryptFromLocalCommandTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsEncryptFromLocalCommandTest.php index 68926c175b8f7..bbdce737b6823 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsEncryptFromLocalCommandTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/SecretsEncryptFromLocalCommandTest.php @@ -92,7 +92,7 @@ public function testDoesNotSealIfSameValue() $this->assertSame('same-value', $revealed); } - public function testFailsIfLocalSecretIsMissing() + public function testStillSucceedsIfLocalSecretIsMissing() { $vault = new SodiumVault($this->vaultDir); $vault->generateKeys(); @@ -105,7 +105,8 @@ public function testFailsIfLocalSecretIsMissing() $command = new SecretsEncryptFromLocalCommand($vault, $localVault); $tester = new CommandTester($command); - $this->assertSame(1, $tester->execute([])); - $this->assertStringContainsString('Secret "MISSING_IN_LOCAL" not found', $tester->getDisplay()); + $this->assertSame(0, $tester->execute([])); + $revealed = $vault->reveal('MISSING_IN_LOCAL'); + $this->assertSame('prod-only', $revealed); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php index 8c938afc56770..fa62d8c47d062 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php @@ -856,7 +856,7 @@ class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported() ? 'semaphor 'secrets' => [ 'enabled' => true, 'vault_directory' => '%kernel.project_dir%/config/secrets/%kernel.runtime_environment%', - 'local_dotenv_file' => '%kernel.project_dir%/.env.%kernel.environment%.local', + 'local_dotenv_file' => '%kernel.project_dir%/.env.%kernel.runtime_environment%.local', 'decryption_env_var' => 'base64:default::SYMFONY_DECRYPTION_SECRET', ], 'http_cache' => [ From 182e53c30a9e571f14b75849553da23c0319c3bc Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Wed, 15 Oct 2025 20:31:20 +0200 Subject: [PATCH 59/69] don't use a fixed date fixture when assertions depend on relative times --- .../Component/Finder/Tests/Iterator/RealIteratorTestCase.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php b/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php index 943c9ad0b389e..b7cde583332c2 100644 --- a/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php +++ b/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php @@ -72,8 +72,8 @@ public static function setUpBeforeClass(): void file_put_contents(self::toAbsolute('test.php'), str_repeat(' ', 800)); file_put_contents(self::toAbsolute('test.py'), str_repeat(' ', 2000)); - touch(self::toAbsolute('foo/bar.tmp'), strtotime('2005-10-15')); - touch(self::toAbsolute('test.php'), strtotime('2005-10-15')); + touch(self::toAbsolute('foo/bar.tmp'), strtotime('-19 years')); + touch(self::toAbsolute('test.php'), strtotime('-19 years')); if (FinderTest::class === static::class) { $fs = new Filesystem(); From f419f0ac1ea428e1cb22bd8bf62e1c395663a751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ostroluck=C3=BD?= Date: Thu, 16 Oct 2025 14:28:00 +0200 Subject: [PATCH 60/69] [TypeInfo] Fix resolving use statements with line breaks --- src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithUses.php | 1 + .../Component/TypeInfo/TypeContext/TypeContextFactory.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithUses.php b/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithUses.php index 868ec8250e5c5..2a2a2413eb64a 100644 --- a/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithUses.php +++ b/src/Symfony/Component/TypeInfo/Tests/Fixtures/DummyWithUses.php @@ -13,6 +13,7 @@ use Symfony\Component\TypeInfo\Type; use \DateTimeInterface; + use \DateTimeImmutable as DateTime; final class DummyWithUses diff --git a/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php b/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php index 8e53006f28120..c0b9b5fa25435 100644 --- a/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php +++ b/src/Symfony/Component/TypeInfo/TypeContext/TypeContextFactory.php @@ -147,7 +147,7 @@ private function collectUses(\ReflectionClass $reflection): array return []; } - if (false === $lines = @file($fileName, \FILE_IGNORE_NEW_LINES)) { + if (false === $lines = @file($fileName, \FILE_IGNORE_NEW_LINES | \FILE_SKIP_EMPTY_LINES)) { throw new RuntimeException(\sprintf('Unable to read file "%s".', $fileName)); } From 21117a6d7a36d86e96fdf3749d63e4cdcd3e90b5 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 16 Oct 2025 15:44:00 +0200 Subject: [PATCH 61/69] fix compatibility with Relay 0.12.1 --- .../Cache/Traits/Relay/Relay121Trait.php | 51 +++++++++++++++++++ .../Traits/Relay/RelayCluster121Trait.php | 32 ++++++++++++ .../Cache/Traits/RelayClusterProxy.php | 2 + .../Component/Cache/Traits/RelayProxy.php | 12 +---- 4 files changed, 87 insertions(+), 10 deletions(-) create mode 100644 src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php create mode 100644 src/Symfony/Component/Cache/Traits/Relay/RelayCluster121Trait.php diff --git a/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php b/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php new file mode 100644 index 0000000000000..8784e5304d0f8 --- /dev/null +++ b/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Traits\Relay; + +if (version_compare(phpversion('relay'), '0.12.1', '>=')) { + /** + * @internal + */ + trait Relay121Trait + { + public function hgetWithMeta($hash, $member): \Relay\Relay|array|false + { + return $this->initializeLazyObject()->getWithMeta(...\func_get_args()); + } + + public function select($db): \Relay\Relay|bool|string + { + return $this->initializeLazyObject()->select(...\func_get_args()); + } + + public function watch($key, ...$other_keys): \Relay\Relay|bool|string + { + return $this->initializeLazyObject()->watch(...\func_get_args()); + } + } +} else { + /** + * @internal + */ + trait Relay121Trait + { + public function select($db): \Relay\Relay|bool + { + return $this->initializeLazyObject()->select(...\func_get_args()); + } + + public function watch($key, ...$other_keys): \Relay\Relay|bool + { + return $this->initializeLazyObject()->watch(...\func_get_args()); + } + } +} diff --git a/src/Symfony/Component/Cache/Traits/Relay/RelayCluster121Trait.php b/src/Symfony/Component/Cache/Traits/Relay/RelayCluster121Trait.php new file mode 100644 index 0000000000000..ec48982b1b322 --- /dev/null +++ b/src/Symfony/Component/Cache/Traits/Relay/RelayCluster121Trait.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Traits\Relay; + +if (version_compare(phpversion('relay'), '0.12.1', '>=')) { + /** + * @internal + */ + trait RelayCluster121Trait + { + public function hgetWithMeta($hash, $member): \Relay\Cluster|array|false + { + return $this->initializeLazyObject()->getWithMeta(...\func_get_args()); + } + } +} else { + /** + * @internal + */ + trait RelayCluster121Trait + { + } +} diff --git a/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php b/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php index fa72fb37bf6be..054e6e1346e28 100644 --- a/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php +++ b/src/Symfony/Component/Cache/Traits/RelayClusterProxy.php @@ -14,6 +14,7 @@ use Relay\Cluster; use Relay\Relay; use Symfony\Component\Cache\Traits\Relay\RelayCluster11Trait; +use Symfony\Component\Cache\Traits\Relay\RelayCluster121Trait; use Symfony\Component\Cache\Traits\Relay\RelayCluster12Trait; use Symfony\Component\VarExporter\LazyObjectInterface; use Symfony\Contracts\Service\ResetInterface; @@ -32,6 +33,7 @@ class RelayClusterProxy extends Cluster implements ResetInterface, LazyObjectInt resetLazyObject as reset; } use RelayCluster11Trait; + use RelayCluster121Trait; use RelayCluster12Trait; public function __construct( diff --git a/src/Symfony/Component/Cache/Traits/RelayProxy.php b/src/Symfony/Component/Cache/Traits/RelayProxy.php index 7a8fd4f9c7b2d..e5c0ed962185a 100644 --- a/src/Symfony/Component/Cache/Traits/RelayProxy.php +++ b/src/Symfony/Component/Cache/Traits/RelayProxy.php @@ -23,6 +23,7 @@ use Symfony\Component\Cache\Traits\Relay\NullableReturnTrait; use Symfony\Component\Cache\Traits\Relay\PfcountTrait; use Symfony\Component\Cache\Traits\Relay\Relay11Trait; +use Symfony\Component\Cache\Traits\Relay\Relay121Trait; use Symfony\Component\Cache\Traits\Relay\Relay12Trait; use Symfony\Component\Cache\Traits\Relay\SwapdbTrait; use Symfony\Component\VarExporter\LazyObjectInterface; @@ -55,6 +56,7 @@ class RelayProxy extends \Relay\Relay implements ResetInterface, LazyObjectInter use RelayProxyTrait; use Relay11Trait; use Relay12Trait; + use Relay121Trait; use SwapdbTrait; public function __construct($host = null, $port = 6379, $connect_timeout = 0.0, $command_timeout = 0.0, #[\SensitiveParameter] $context = [], $database = 0) @@ -247,11 +249,6 @@ public function rawCommand($cmd, ...$args): mixed return $this->initializeLazyObject()->rawCommand(...\func_get_args()); } - public function select($db): \Relay\Relay|bool - { - return $this->initializeLazyObject()->select(...\func_get_args()); - } - public function auth(#[\SensitiveParameter] $auth): bool { return $this->initializeLazyObject()->auth(...\func_get_args()); @@ -937,11 +934,6 @@ public function wait($replicas, $timeout): \Relay\Relay|false|int return $this->initializeLazyObject()->wait(...\func_get_args()); } - public function watch($key, ...$other_keys): \Relay\Relay|bool - { - return $this->initializeLazyObject()->watch(...\func_get_args()); - } - public function unwatch(): \Relay\Relay|bool { return $this->initializeLazyObject()->unwatch(...\func_get_args()); From 4e526c0bf5058a46f0e5370c3ec57065c4014e48 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 17 Oct 2025 14:05:14 +0200 Subject: [PATCH 62/69] fix compatibility with Relay 0.12.1 --- .../Cache/Traits/Relay/Relay121Trait.php | 51 +++++++++++++++++++ .../Component/Cache/Traits/RelayProxy.php | 12 +---- 2 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php diff --git a/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php b/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php new file mode 100644 index 0000000000000..da222ba8f4323 --- /dev/null +++ b/src/Symfony/Component/Cache/Traits/Relay/Relay121Trait.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Traits\Relay; + +if (version_compare(phpversion('relay'), '0.12.1', '>=')) { + /** + * @internal + */ + trait Relay121Trait + { + public function hgetWithMeta($hash, $member): \Relay\Relay|array|false + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetWithMeta(...\func_get_args()); + } + + public function select($db): \Relay\Relay|bool|string + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args()); + } + + public function watch($key, ...$other_keys): \Relay\Relay|bool|string + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args()); + } + } +} else { + /** + * @internal + */ + trait Relay121Trait + { + public function select($db): \Relay\Relay|bool + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args()); + } + + public function watch($key, ...$other_keys): \Relay\Relay|bool + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args()); + } + } +} diff --git a/src/Symfony/Component/Cache/Traits/RelayProxy.php b/src/Symfony/Component/Cache/Traits/RelayProxy.php index 66cdbdefa3958..ad3c86e5e7ac9 100644 --- a/src/Symfony/Component/Cache/Traits/RelayProxy.php +++ b/src/Symfony/Component/Cache/Traits/RelayProxy.php @@ -23,6 +23,7 @@ use Symfony\Component\Cache\Traits\Relay\NullableReturnTrait; use Symfony\Component\Cache\Traits\Relay\PfcountTrait; use Symfony\Component\Cache\Traits\Relay\Relay11Trait; +use Symfony\Component\Cache\Traits\Relay\Relay121Trait; use Symfony\Component\Cache\Traits\Relay\Relay12Trait; use Symfony\Component\Cache\Traits\Relay\SwapdbTrait; use Symfony\Component\VarExporter\LazyObjectInterface; @@ -56,6 +57,7 @@ class RelayProxy extends \Relay\Relay implements ResetInterface, LazyObjectInter use RelayProxyTrait; use Relay11Trait; use Relay12Trait; + use Relay121Trait; use SwapdbTrait; private const LAZY_OBJECT_PROPERTY_SCOPES = []; @@ -250,11 +252,6 @@ public function rawCommand($cmd, ...$args): mixed return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rawCommand(...\func_get_args()); } - public function select($db): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args()); - } - public function auth(#[\SensitiveParameter] $auth): bool { return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->auth(...\func_get_args()); @@ -940,11 +937,6 @@ public function wait($replicas, $timeout): \Relay\Relay|false|int return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->wait(...\func_get_args()); } - public function watch($key, ...$other_keys): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args()); - } - public function unwatch(): \Relay\Relay|bool { return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unwatch(...\func_get_args()); From 5d9c323f3ad7b0edd46769f4dae7a3c057e2787b Mon Sep 17 00:00:00 2001 From: Carlos Fernandes Date: Sat, 18 Oct 2025 22:57:37 -0300 Subject: [PATCH 63/69] [Security] fix small typo in PasswordAuthenticatedUserInterface --- .../Security/Core/User/PasswordAuthenticatedUserInterface.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Security/Core/User/PasswordAuthenticatedUserInterface.php b/src/Symfony/Component/Security/Core/User/PasswordAuthenticatedUserInterface.php index 01613ec299b0b..53b9e4f9e5d04 100644 --- a/src/Symfony/Component/Security/Core/User/PasswordAuthenticatedUserInterface.php +++ b/src/Symfony/Component/Security/Core/User/PasswordAuthenticatedUserInterface.php @@ -32,7 +32,7 @@ * return $data; * } * - * Implement EquatableInteface if you need another logic. + * Implement EquatableInterface if you need another logic. * * @author Robin Chalas * @author Wouter de Jong From bec15bea0328c986a2e657cd5921d2eb7705ae25 Mon Sep 17 00:00:00 2001 From: Minna N <44906587+minna-xD@users.noreply.github.com> Date: Thu, 23 Oct 2025 22:49:35 +0300 Subject: [PATCH 64/69] Reviewed translations --- .../Resources/translations/security.fi.xlf | 12 ++-- .../Resources/translations/validators.fi.xlf | 68 +++++++++---------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf index 7df4a19347428..8e74dec187a40 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf @@ -4,7 +4,7 @@ An authentication exception occurred. - Autentikointi poikkeus tapahtui. + Autentikointipoikkeus tapahtui. Authentication credentials could not be found. @@ -20,7 +20,7 @@ Cookie has already been used by someone else. - Eväste on jo jonkin muun käytössä. + Eväste on jo jonkun muun käytössä. Not privileged to request the resource. @@ -28,11 +28,11 @@ Invalid CSRF token. - Virheellinen CSRF tunnus. + Virheellinen CSRF-tunnus. No authentication provider found to support the authentication token. - Autentikointi tunnukselle ei löydetty tuettua autentikointi tarjoajaa. + Autentikointitunnukselle ei löydetty tuettua autentikoinnintarjoajaa. No session available, it either timed out or cookies are not enabled. @@ -44,7 +44,7 @@ Username could not be found. - Käyttäjätunnusta ei löydetty. + Käyttäjätunnusta ei löytynyt. Account has expired. @@ -76,7 +76,7 @@ Too many failed login attempts, please try again in %minutes% minutes. - Liian monta epäonnistunutta kirjautumisyritystä, yritä uudelleen %minutes% minuutin kuluttua. + Liian monta epäonnistunutta kirjautumisyritystä, yritä uudelleen %minutes% minuutin kuluttua. diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.fi.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.fi.xlf index d7d88d8b7bf84..04d99cf57fe0c 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.fi.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.fi.xlf @@ -136,7 +136,7 @@ This value is not a valid IP address. - Tämä arvo ei ole kelvollinen IP-osoite. + Tämä arvo ei ole kelvollinen IP-osoite. This value is not a valid language. @@ -192,7 +192,7 @@ No temporary folder was configured in php.ini, or the configured folder does not exist. - Väliaikaista kansiota ei ole määritetty php.ini:ssä, tai määritetty kansio ei ole olemassa. + Väliaikaista kansiota ei ole määritetty php.ini:ssä, tai määritetty kansio ei ole olemassa. Cannot write temporary file to disk. @@ -224,7 +224,7 @@ This value is not a valid International Bank Account Number (IBAN). - Tämä arvo ei ole kelvollinen kansainvälinen pankkitilinumero (IBAN). + Tämä arvo ei ole kelvollinen kansainvälinen pankkitilinumero (IBAN). This value is not a valid ISBN-10. @@ -312,7 +312,7 @@ This value is not a valid Business Identifier Code (BIC). - Tämä arvo ei ole kelvollinen liiketoiminnan tunnistekoodi (BIC). + Tämä arvo ei ole kelvollinen liiketoiminnan tunnistekoodi (BIC). Error @@ -320,7 +320,7 @@ This value is not a valid UUID. - Tämä arvo ei ole kelvollinen UUID. + Tämä arvo ei ole kelvollinen UUID. This value should be a multiple of {{ compared_value }}. @@ -440,119 +440,119 @@ This URL is missing a top-level domain. - Tästä URL-osoitteesta puuttuu ylätason verkkotunnus. + Tästä URL-osoitteesta puuttuu ylätason verkkotunnus. This value is too short. It should contain at least one word.|This value is too short. It should contain at least {{ min }} words. - Tämä arvo on liian lyhyt. Sen pitäisi sisältää vähintään yksi sana.|Tämä arvo on liian lyhyt. Sen pitäisi sisältää vähintään {{ min }} sanaa. + Tämä arvo on liian lyhyt. Sen pitäisi sisältää vähintään yksi sana.|Tämä arvo on liian lyhyt. Sen pitäisi sisältää vähintään {{ min }} sanaa. This value is too long. It should contain one word.|This value is too long. It should contain {{ max }} words or less. - Tämä arvo on liian pitkä. Sen pitäisi sisältää vain yksi sana.|Tämä arvo on liian pitkä. Sen pitäisi sisältää {{ max }} sanaa tai vähemmän. + Tämä arvo on liian pitkä. Sen pitäisi sisältää vain yksi sana.|Tämä arvo on liian pitkä. Sen pitäisi sisältää {{ max }} sanaa tai vähemmän. This value does not represent a valid week in the ISO 8601 format. - Tämä arvo ei esitä kelvollista viikkoa ISO 8601 -muodossa. + Tämä arvo ei esitä kelvollista viikkoa ISO 8601 -muodossa. This value is not a valid week. - Tämä arvo ei ole kelvollinen viikko. + Tämä arvo ei ole kelvollinen viikko. This value should not be before week "{{ min }}". - Tämän arvon ei pitäisi olla ennen viikkoa "{{ min }}". + Tämän arvon ei pitäisi olla ennen viikkoa "{{ min }}". This value should not be after week "{{ max }}". - Tämän arvon ei pitäisi olla viikon "{{ max }}" jälkeen. + Tämän arvon ei pitäisi olla viikon "{{ max }}" jälkeen. This value is not a valid Twig template. - Tämä arvo ei ole kelvollinen Twig-malli. + Tämä arvo ei ole kelvollinen Twig-malli. This file is not a valid video. - Tämä tiedosto ei ole kelvollinen video. + Tämä tiedosto ei ole kelvollinen video. The size of the video could not be detected. - Videon kokoa ei voitu tunnistaa. + Videon kokoa ei voitu tunnistaa. The video width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. - Videon leveys on liian suuri ({{ width }}px). Sallittu enimmäisleveys on {{ max_width }}px. + Videon leveys on liian suuri ({{ width }} px). Leveyden tulee olla enintään {{ max_width }} px. The video width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. - Videon leveys on liian pieni ({{ width }}px). Odotettu vähimmäisleveys on {{ min_width }} px. + Videon leveys on liian pieni ({{ width }} px). Leveyden tulee olla vähintään {{ min_width }} px. The video height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. - Videon korkeus on liian suuri ({{ height }}px). Sallittu enimmäiskorkeus on {{ max_height }}px. + Videon korkeus on liian suuri ({{ height }} px). Korkeuden tulee olla enintään {{ max_height }} px. The video height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. - Videon korkeus on liian pieni ({{ height }}px). Odotettu vähimmäiskorkeus on {{ min_height }}px. + Videon korkeus on liian pieni ({{ height }} px). Korkeuden tulee olla vähintään {{ min_height }} px. The video has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Videossa on liian vähän pikseleitä ({{ pixels }}). Odotettu vähimmäismäärä on {{ min_pixels }}. + Videossa on liian vähän pikseleitä ({{ pixels }}). Pikseleitä tulee olla vähintään {{ min_pixels }}. The video has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Videossa on liikaa pikseleitä ({{ pixels }}). Odotettu enimmäismäärä on {{ max_pixels }}. + Videossa on liikaa pikseleitä ({{ pixels }}). Pikseleitä tulee olla enintään {{ max_pixels }}. The video ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. - Videon suhde on liian suuri ({{ ratio }}). Sallittu enimmäissuhde on {{ max_ratio }}. + Videon kuvasuhde on liian suuri ({{ ratio }}). Suurin sallittu suhde on {{ max_ratio }}. The video ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. - Videon kuvasuhde on liian pieni ({{ ratio }}). Odotettu vähimmäissuhde on {{ min_ratio }}. + Videon kuvasuhde on liian pieni ({{ ratio }}). Pienin sallittu suhde on {{ min_ratio }}. The video is square ({{ width }}x{{ height }}px). Square videos are not allowed. - Video on neliömäinen ({{ width }}x{{ height }}px). Neliövideot eivät ole sallittuja. + Video on neliön muotoinen ({{ width }}x{{ height }}px). Neliönmuotoiset videot eivät ole sallittuja. The video is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented videos are not allowed. - Video on vaakanäytössä ({{ width }}x{{ height }} px). Vaaka-asentoiset videot eivät ole sallittuja. + Video on vaakasuuntainen ({{ width }}x{{ height }} px). Vaakasuuntaiset videot eivät ole sallittuja. The video is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented videos are not allowed. - Video on pystysuunnassa ({{ width }}x{{ height }} px). Pystyvideot eivät ole sallittuja. + Video on pystysuuntainen ({{ width }}x{{ height }} px). Pystysuuntaiset videot eivät ole sallittuja. The video file is corrupted. - Videotiedosto on vioittunut. + Videotiedosto on vioittunut. The video contains multiple streams. Only one stream is allowed. - Videossa on useita virtoja. Vain yksi virta on sallittu. + Videossa on useita virtoja. Vain yksi virta on sallittu. Unsupported video codec "{{ codec }}". - Ei-tuettu videokoodekki ”{{ codec }}”. + Videokoodekkia ei tueta ({{ codec }}). Unsupported video container "{{ container }}". - Ei-tuettu videokontti "{{ container }}". + Videon säiliömuotoa ei tueta ({{ container }}). The image file is corrupted. - Kuvatiedosto on vioittunut. + Kuvatiedosto on vioittunut. The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels. - Kuvassa on liian vähän pikseleitä ({{ pixels }}). Odotettu vähimmäismäärä on {{ min_pixels }}. + Kuvassa on liian vähän pikseleitä ({{ pixels }}). Pikseleitä tulee olla vähintään {{ min_pixels }}. The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels. - Kuvassa on liikaa pikseleitä ({{ pixels }}). Odotettu enimmäismäärä on {{ max_pixels }}. + Kuvassa on liikaa pikseleitä ({{ pixels }}). Pikseleitä tulee olla enintään {{ max_pixels }}. This filename does not match the expected charset. - Tämän tiedostonimi ei vastaa odotettua merkistöä. + Tämä tiedostonimi ei vastaa odotettua merkistöä. From f2a254ebcce780e56b7f858e6dc3bb46dc691c60 Mon Sep 17 00:00:00 2001 From: Philipp Wahala Date: Fri, 24 Oct 2025 07:00:20 +0200 Subject: [PATCH 65/69] [Mailer] Fix parsing message ids in SMTP responses --- .../Mailer/Transport/Smtp/SmtpTransport.php | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php b/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php index f626f9dfb9aaa..d3a716dbdc751 100644 --- a/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php +++ b/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php @@ -154,18 +154,7 @@ public function send(RawMessage $message, ?Envelope $envelope = null): ?SentMess protected function parseMessageId(string $mtaResult): string { - $regexps = [ - '/250 Ok (?P[0-9a-f-]+)\r?$/mis', - '/250 Ok:? queued as (?P[A-Z0-9]+)\r?$/mis', - ]; - $matches = []; - foreach ($regexps as $regexp) { - if (preg_match($regexp, $mtaResult, $matches)) { - return $matches['id']; - } - } - - return ''; + return preg_match('/^250 (?:\S+ )?Ok:?+ (?-i:queued as |id=)?+(?P[A-Z0-9._-]++)[\r\n]/i', $mtaResult, $matches) ? $matches['id'] : ''; } public function __toString(): string From a8aacb860335ac1e3bf75931ed43da5bbc483580 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 24 Oct 2025 15:29:09 +0200 Subject: [PATCH 66/69] [Mailer] Relax regexp to parse message ids --- src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php b/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php index d3a716dbdc751..2570e3fc25098 100644 --- a/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php +++ b/src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php @@ -154,7 +154,7 @@ public function send(RawMessage $message, ?Envelope $envelope = null): ?SentMess protected function parseMessageId(string $mtaResult): string { - return preg_match('/^250 (?:\S+ )?Ok:?+ (?-i:queued as |id=)?+(?P[A-Z0-9._-]++)[\r\n]/i', $mtaResult, $matches) ? $matches['id'] : ''; + return preg_match('/^250 (?:\S+ )?Ok:?+ (?:queued as |id=)?+(?P[A-Z0-9._-]++)/im', $mtaResult, $matches) ? $matches['id'] : ''; } public function __toString(): string From b81271e703584cc2c9a9933159f48dc6161a9501 Mon Sep 17 00:00:00 2001 From: Santiago San Martin Date: Fri, 24 Oct 2025 17:57:51 -0300 Subject: [PATCH 67/69] [HttpFoundation] Fix issue where ServerEvent with "0" data is not sent --- .../Component/HttpFoundation/ServerEvent.php | 12 +++++----- .../Tests/EventStreamResponseTest.php | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/ServerEvent.php b/src/Symfony/Component/HttpFoundation/ServerEvent.php index ea2b5c885e8bd..7597058bd1508 100644 --- a/src/Symfony/Component/HttpFoundation/ServerEvent.php +++ b/src/Symfony/Component/HttpFoundation/ServerEvent.php @@ -132,14 +132,12 @@ public function getIterator(): \Traversable } yield $head; - if ($this->data) { - if (is_iterable($this->data)) { - foreach ($this->data as $data) { - yield \sprintf('data: %s', $data)."\n"; - } - } else { - yield \sprintf('data: %s', $this->data)."\n"; + if (is_iterable($this->data)) { + foreach ($this->data as $data) { + yield \sprintf('data: %s', $data)."\n"; } + } elseif ('' !== $this->data) { + yield \sprintf('data: %s', $this->data)."\n"; } yield "\n"; diff --git a/src/Symfony/Component/HttpFoundation/Tests/EventStreamResponseTest.php b/src/Symfony/Component/HttpFoundation/Tests/EventStreamResponseTest.php index 4c430fbe85e68..f3b5ae9105370 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/EventStreamResponseTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/EventStreamResponseTest.php @@ -116,6 +116,28 @@ public function testStreamEventWithSendMethod() $this->assertSameResponseContent("data: foo\n\n", $response); } + public function testStreamEventWith0Data() + { + $response = new EventStreamResponse(function () { + yield new ServerEvent( + data: '0', + ); + }); + + $this->assertSameResponseContent("data: 0\n\n", $response); + } + + public function testStreamEventEmptyStringIgnored() + { + $response = new EventStreamResponse(function () { + yield new ServerEvent( + data: '', + ); + }); + + $this->assertSameResponseContent("\n", $response); + } + private function assertSameResponseContent(string $expected, EventStreamResponse $response): void { ob_start(); From 95846e3f64e1c851080583a8cc5a35989a7e2a38 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 28 Oct 2025 06:18:51 -0400 Subject: [PATCH 68/69] Update CHANGELOG for 7.3.5 --- CHANGELOG-7.3.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/CHANGELOG-7.3.md b/CHANGELOG-7.3.md index ec737a2ded5f0..595e09640b5b0 100644 --- a/CHANGELOG-7.3.md +++ b/CHANGELOG-7.3.md @@ -7,6 +7,43 @@ in 7.3 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v7.3.0...v7.3.1 +* 7.3.5 (2025-10-28) + + * bug #62153 [HttpFoundation] Fix issue where ServerEvent with "0" data is not sent (santysisi) + * bug #62145 [Mailer] Fix parsing message ids in SMTP responses (hacfi) + * bug #62096 [Cache] fix compatibility with Relay 0.12.1 (xabbuh) + * bug #62078 [FrameworkBundle] Fix secrets:encrypt-from-local (nicolas-grekas) + * bug #62028 [Validator] Update regular expression in URL validator (mjaschen) + * bug #62087 [Cache] fix compatibility with Relay 0.12.1 (xabbuh) + * bug #62083 [TypeInfo] Fix resolving use statements with line breaks (ostrolucky) + * bug #62054 [AssetMapper] Fix parsing `@import` that don't use url() (nicolas-grekas) + * bug #62058 [Console] Ensure `SHELL_VERBOSITY` is always restored properly (ttskch) + * bug #62037 Fix generating logout link with stateless csrf (pierredup) + * bug #62041 [DebugBundle] Wire `DumpDataCollector`'s `webMode` argument (HypeMC) + * bug #62038 [Translation][Loco] filter should be empty when filtering on all domains (atomiix) + * bug #62003 [Serializer] Fix unexpected type in denormalization errors when float|int union type used in constructor with non numeric string in form-data request (d-mitrofanov-v) + * bug #61990 [Cache][RedisTagAwareAdapter] Add Predis2 Replication Interface check (BrianMwit) + * bug #61939 [FrameworkBundle] fix using lock from service id when previous locks used env vars (AydinHassan) + * bug #61970 [Cache] fix compatibility with RelayCluster 0.11 and 0.12 (xabbuh) + * bug #61964 [PropertyInfo][TypeInfo] Fix resolving constructor type with templates (HypeMC) + * bug #61960 [WebProfilerBundle] ”finish” errored requests (MatTheCat) + * bug #61954 [TypeInfo] Fix type alias with template resolving (mtarld) + * bug #61924 [Mailer] Revert " Fix memory leak with `mailer.message_logger_listener`" (kochen) + * bug #61943 [TypeInfo] ArrayShape can resolve key type as callable instead of string (Dean151) + * bug #61947 [Cache] fix Relay Cluster 0.12 compatibility (xabbuh) + * bug #61945 [Cache] fix compatibility with Relay 0.12 (xabbuh) + * bug #61928 [Form] keep labels from configured choices (xabbuh) + * bug #61889 [Serializer] Fix discriminator class mapping with allow_extra_attributes=false (chris54721) + * bug #61861 [Console] Ensure terminal is usable after termination signal (johnstevenson) + * bug #61912 [FrameworkBundle] Fix support of dumping workflow when workflow is decorated by TraceableWorkflow (lyrixx) + * bug #61876 [Mailer][MailJet] Fix forbidden headers case-sensitive comparison (benjamintoussaint) + * bug #61874 [Scheduler] Don’t get next run date from `null` (MatTheCat) + * bug #61875 [Form] do not cast too big floats to int (xabbuh) + * bug #61869 [JsonPath] do not pass more than one byte to ord() (xabbuh) + * bug #61856 [Console] do not pass the empty string to ord() (xabbuh) + * bug #61855 [DoctrineBridge][Yaml] don't cast strings exceeding the min/max int ranges (xabbuh) + * bug #61844 do not coerce NAN to other types (xabbuh) + * 7.3.4 (2025-09-27) * bug #61830 [Security] Fix preload warning in `AuthorizationChecker` (MatTheCat) From 85c5e07a58dd9a7ff1fa2d65dd8c7948ac848484 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 28 Oct 2025 06:19:01 -0400 Subject: [PATCH 69/69] Update VERSION for 7.3.5 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index f5843fec3274c..5feef404701bb 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -73,12 +73,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static array $freshCache = []; - public const VERSION = '7.3.5-DEV'; + public const VERSION = '7.3.5'; public const VERSION_ID = 70305; public const MAJOR_VERSION = 7; public const MINOR_VERSION = 3; public const RELEASE_VERSION = 5; - public const EXTRA_VERSION = 'DEV'; + public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '01/2026'; public const END_OF_LIFE = '01/2026';