From 4bfb8da9f74bfc5be0789f52ae7ee5fb0ba17ae5 Mon Sep 17 00:00:00 2001 From: thecaliskan Date: Mon, 26 May 2025 11:39:29 +0300 Subject: [PATCH 01/63] fixed Via regex --- src/Symfony/Component/HttpFoundation/Request.php | 2 +- src/Symfony/Component/HttpFoundation/Tests/RequestTest.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/HttpFoundation/Request.php b/src/Symfony/Component/HttpFoundation/Request.php index 922014133293e..42a3a8a2c660c 100644 --- a/src/Symfony/Component/HttpFoundation/Request.php +++ b/src/Symfony/Component/HttpFoundation/Request.php @@ -1466,7 +1466,7 @@ public function isMethodCacheable(): bool public function getProtocolVersion(): ?string { if ($this->isFromTrustedProxy()) { - preg_match('~^(HTTP/)?([1-9]\.[0-9]) ~', $this->headers->get('Via') ?? '', $matches); + preg_match('~^(HTTP/)?([1-9]\.[0-9])\b~', $this->headers->get('Via') ?? '', $matches); if ($matches) { return 'HTTP/'.$matches[2]; diff --git a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php index f1aa0ebeab928..a2eace70e6e80 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php @@ -2402,6 +2402,8 @@ public static function protocolVersionProvider() 'trusted with via and protocol name' => ['HTTP/2.0', true, 'HTTP/1.0 fred, HTTP/1.1 nowhere.com (Apache/1.1)', 'HTTP/1.0'], 'trusted with broken via' => ['HTTP/2.0', true, 'HTTP/1^0 foo', 'HTTP/2.0'], 'trusted with partially-broken via' => ['HTTP/2.0', true, '1.0 fred, foo', 'HTTP/1.0'], + 'trusted with simple via' => ['HTTP/2.0', true, 'HTTP/1.0', 'HTTP/1.0'], + 'trusted with only version via' => ['HTTP/2.0', true, '1.0', 'HTTP/1.0'], ]; } From 82a1563b6cdd26d6c6827d019be131d62e9adf3e Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 29 May 2025 09:34:10 +0200 Subject: [PATCH 02/63] Bump Symfony version to 6.4.23 --- 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 bd7589173013e..91c143f34298c 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.22'; - public const VERSION_ID = 60422; + public const VERSION = '6.4.23-DEV'; + public const VERSION_ID = 60423; public const MAJOR_VERSION = 6; public const MINOR_VERSION = 4; - public const RELEASE_VERSION = 22; - public const EXTRA_VERSION = ''; + public const RELEASE_VERSION = 23; + public const EXTRA_VERSION = 'DEV'; public const END_OF_MAINTENANCE = '11/2026'; public const END_OF_LIFE = '11/2027'; From 558202c609802d899adce24d0747a02edff5bfa0 Mon Sep 17 00:00:00 2001 From: matlec Date: Thu, 29 May 2025 10:10:20 +0200 Subject: [PATCH 03/63] [DependencyInjection] Make `YamlDumper` quote resolved env vars if necessary --- .../DependencyInjection/Dumper/YamlDumper.php | 16 +++++++-------- .../Tests/Dumper/YamlDumperTest.php | 20 +++++++++++++++++++ .../yaml/container_with_env_placeholders.yml | 19 ++++++++++++++++++ 3 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/container_with_env_placeholders.yml diff --git a/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php index 6b72aff14c2a7..299558039a632 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php @@ -50,18 +50,18 @@ public function dump(array $options = []): string $this->dumper ??= new YmlDumper(); - return $this->container->resolveEnvPlaceholders($this->addParameters()."\n".$this->addServices()); + return $this->addParameters()."\n".$this->addServices(); } private function addService(string $id, Definition $definition): string { - $code = " $id:\n"; + $code = " {$this->dumper->dump($id)}:\n"; if ($class = $definition->getClass()) { if (str_starts_with($class, '\\')) { $class = substr($class, 1); } - $code .= sprintf(" class: %s\n", $this->dumper->dump($class)); + $code .= sprintf(" class: %s\n", $this->dumper->dump($this->container->resolveEnvPlaceholders($class))); } if (!$definition->isPrivate()) { @@ -87,7 +87,7 @@ private function addService(string $id, Definition $definition): string } if ($definition->getFile()) { - $code .= sprintf(" file: %s\n", $this->dumper->dump($definition->getFile())); + $code .= sprintf(" file: %s\n", $this->dumper->dump($this->container->resolveEnvPlaceholders($definition->getFile()))); } if ($definition->isSynthetic()) { @@ -238,7 +238,7 @@ private function dumpCallable(mixed $callable): mixed } } - return $callable; + return $this->container->resolveEnvPlaceholders($callable); } /** @@ -299,7 +299,7 @@ private function dumpValue(mixed $value): mixed if (\is_array($value)) { $code = []; foreach ($value as $k => $v) { - $code[$k] = $this->dumpValue($v); + $code[$this->container->resolveEnvPlaceholders($k)] = $this->dumpValue($v); } return $code; @@ -319,7 +319,7 @@ private function dumpValue(mixed $value): mixed throw new RuntimeException(sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value))); } - return $value; + return $this->container->resolveEnvPlaceholders($value); } private function getServiceCall(string $id, ?Reference $reference = null): string @@ -359,7 +359,7 @@ private function prepareParameters(array $parameters, bool $escape = true): arra $filtered[$key] = $value; } - return $escape ? $this->escape($filtered) : $filtered; + return $escape ? $this->container->resolveEnvPlaceholders($this->escape($filtered)) : $filtered; } private function escape(array $arguments): array diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php index f9ff3fff786a3..3a21d7aa9a9c5 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php @@ -215,6 +215,26 @@ public function testDumpNonScalarTags() $this->assertEquals(file_get_contents(self::$fixturesPath.'/yaml/services_with_array_tags.yml'), $dumper->dump()); } + public function testDumpResolvedEnvPlaceholders() + { + $container = new ContainerBuilder(); + $container->setParameter('%env(PARAMETER_NAME)%', '%env(PARAMETER_VALUE)%'); + $container + ->register('service', '%env(SERVICE_CLASS)%') + ->setFile('%env(SERVICE_FILE)%') + ->addArgument('%env(SERVICE_ARGUMENT)%') + ->setProperty('%env(SERVICE_PROPERTY_NAME)%', '%env(SERVICE_PROPERTY_VALUE)%') + ->addMethodCall('%env(SERVICE_METHOD_NAME)%', ['%env(SERVICE_METHOD_ARGUMENT)%']) + ->setFactory('%env(SERVICE_FACTORY)%') + ->setConfigurator('%env(SERVICE_CONFIGURATOR)%') + ->setPublic(true) + ; + $container->compile(); + $dumper = new YamlDumper($container); + + $this->assertEquals(file_get_contents(self::$fixturesPath.'/yaml/container_with_env_placeholders.yml'), $dumper->dump()); + } + private function assertEqualYamlStructure(string $expected, string $yaml, string $message = '') { $parser = new Parser(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/container_with_env_placeholders.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/container_with_env_placeholders.yml new file mode 100644 index 0000000000000..46c91130faecd --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/container_with_env_placeholders.yml @@ -0,0 +1,19 @@ +parameters: + '%env(PARAMETER_NAME)%': '%env(PARAMETER_VALUE)%' + +services: + service_container: + class: Symfony\Component\DependencyInjection\ContainerInterface + public: true + synthetic: true + service: + class: '%env(SERVICE_CLASS)%' + public: true + file: '%env(SERVICE_FILE)%' + arguments: ['%env(SERVICE_ARGUMENT)%'] + properties: { '%env(SERVICE_PROPERTY_NAME)%': '%env(SERVICE_PROPERTY_VALUE)%' } + calls: + - ['%env(SERVICE_METHOD_NAME)%', ['%env(SERVICE_METHOD_ARGUMENT)%']] + + factory: '%env(SERVICE_FACTORY)%' + configurator: '%env(SERVICE_CONFIGURATOR)%' From 5aebeb3805e00166c4e033ed995f357a02314f34 Mon Sep 17 00:00:00 2001 From: HypeMC Date: Thu, 29 May 2025 23:38:42 +0200 Subject: [PATCH 04/63] [PhpUnitBridge] Mark as dev package --- src/Symfony/Bridge/PhpUnit/composer.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/PhpUnit/composer.json b/src/Symfony/Bridge/PhpUnit/composer.json index 9febfdb8ee63e..a42c737f70b78 100644 --- a/src/Symfony/Bridge/PhpUnit/composer.json +++ b/src/Symfony/Bridge/PhpUnit/composer.json @@ -2,7 +2,9 @@ "name": "symfony/phpunit-bridge", "type": "symfony-bridge", "description": "Provides utilities for PHPUnit, especially user deprecation notices management", - "keywords": [], + "keywords": [ + "testing" + ], "homepage": "https://symfony.com", "license": "MIT", "authors": [ From 207e2f9a5eaae24c520a5013e1892659d4841a12 Mon Sep 17 00:00:00 2001 From: alifanau Date: Fri, 30 May 2025 03:16:57 +0300 Subject: [PATCH 05/63] Fix: Lack of recipient in case DSN does not have optional LIST_ID parameter. According to https://developers.clicksend.com/docs/messaging/sms/other/send-sms#other/send-sms/t=request&path=messages/list_id we need to provide the "to" parameter or the "list_id" parameter. Also fixed forwarding FROM_EMAIL parameter to request. --- .../Bridge/ClickSend/ClickSendTransport.php | 4 +-- .../Tests/ClickSendTransportTest.php | 29 ++++++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Notifier/Bridge/ClickSend/ClickSendTransport.php b/src/Symfony/Component/Notifier/Bridge/ClickSend/ClickSendTransport.php index f60e4e23ee3f9..13f839ba4946c 100644 --- a/src/Symfony/Component/Notifier/Bridge/ClickSend/ClickSendTransport.php +++ b/src/Symfony/Component/Notifier/Bridge/ClickSend/ClickSendTransport.php @@ -75,13 +75,13 @@ protected function doSend(MessageInterface $message): SentMessage $options['from'] = $message->getFrom() ?: $this->from; $options['source'] ??= $this->source; $options['list_id'] ??= $this->listId; - $options['from_email'] ?? $this->fromEmail; + $options['from_email'] ??= $this->fromEmail; if (isset($options['from']) && !preg_match('/^[a-zA-Z0-9\s]{3,11}$/', $options['from']) && !preg_match('/^\+[1-9]\d{1,14}$/', $options['from'])) { throw new InvalidArgumentException(sprintf('The "From" number "%s" is not a valid phone number, shortcode, or alphanumeric sender ID.', $options['from'])); } - if ($options['list_id'] ?? false) { + if (!$options['list_id']) { $options['to'] = $message->getPhone(); } diff --git a/src/Symfony/Component/Notifier/Bridge/ClickSend/Tests/ClickSendTransportTest.php b/src/Symfony/Component/Notifier/Bridge/ClickSend/Tests/ClickSendTransportTest.php index ba7923a7fa231..c7d1fa876b82f 100644 --- a/src/Symfony/Component/Notifier/Bridge/ClickSend/Tests/ClickSendTransportTest.php +++ b/src/Symfony/Component/Notifier/Bridge/ClickSend/Tests/ClickSendTransportTest.php @@ -24,7 +24,7 @@ final class ClickSendTransportTest extends TransportTestCase { - public static function createTransport(?HttpClientInterface $client = null, string $from = 'test_from', string $source = 'test_source', int $listId = 99, string $fromEmail = 'foo@bar.com'): ClickSendTransport + public static function createTransport(?HttpClientInterface $client = null, ?string $from = 'test_from', ?string $source = 'test_source', ?int $listId = 99, ?string $fromEmail = 'foo@bar.com'): ClickSendTransport { return new ClickSendTransport('test_username', 'test_key', $from, $source, $listId, $fromEmail, $client ?? new MockHttpClient()); } @@ -70,6 +70,10 @@ public function testNoInvalidArgumentExceptionIsThrownIfFromIsValid(string $from $body = json_decode($options['body'], true); self::assertIsArray($body); self::assertArrayHasKey('messages', $body); + $message = reset($body['messages']); + self::assertArrayHasKey('from_email', $message); + self::assertArrayHasKey('list_id', $message); + self::assertArrayNotHasKey('to', $message); return $response; }); @@ -77,6 +81,29 @@ public function testNoInvalidArgumentExceptionIsThrownIfFromIsValid(string $from $transport->send($message); } + public function testNoInvalidArgumentExceptionIsThrownIfFromIsValidWithoutOptionalParameters() + { + $message = new SmsMessage('+33612345678', 'Hello!'); + $response = $this->createMock(ResponseInterface::class); + $response->expects(self::exactly(2))->method('getStatusCode')->willReturn(200); + $response->expects(self::once())->method('getContent')->willReturn(''); + $client = new MockHttpClient(function (string $method, string $url, array $options) use ($response): ResponseInterface { + self::assertSame('POST', $method); + self::assertSame('https://rest.clicksend.com/v3/sms/send', $url); + + $body = json_decode($options['body'], true); + self::assertIsArray($body); + self::assertArrayHasKey('messages', $body); + $message = reset($body['messages']); + self::assertArrayNotHasKey('list_id', $message); + self::assertArrayHasKey('to', $message); + + return $response; + }); + $transport = $this->createTransport($client, null, null, null, null); + $transport->send($message); + } + public static function toStringProvider(): iterable { yield ['clicksend://rest.clicksend.com?from=test_from&source=test_source&list_id=99&from_email=foo%40bar.com', self::createTransport()]; From e51a81a9d93d6184452ee849969edc165ccb140d Mon Sep 17 00:00:00 2001 From: Abdelhakim ABOULHAJ Date: Wed, 28 May 2025 15:48:55 +0100 Subject: [PATCH 06/63] doc: update UserInterface header comments --- src/Symfony/Component/Security/Core/User/UserInterface.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Symfony/Component/Security/Core/User/UserInterface.php b/src/Symfony/Component/Security/Core/User/UserInterface.php index ef22340a6313a..a543c35caee98 100644 --- a/src/Symfony/Component/Security/Core/User/UserInterface.php +++ b/src/Symfony/Component/Security/Core/User/UserInterface.php @@ -15,9 +15,7 @@ * Represents the interface that all user classes must implement. * * This interface is useful because the authentication layer can deal with - * the object through its lifecycle, using the object to get the hashed - * password (for checking against a submitted password), assigning roles - * and so on. + * the object through its lifecycle, assigning roles and so on. * * Regardless of how your users are loaded or where they come from (a database, * configuration, web service, etc.), you will have a class that implements From c24f895ef6b101b313a99e2ff832d8bb486c41f2 Mon Sep 17 00:00:00 2001 From: matlec Date: Fri, 30 May 2025 13:06:20 +0200 Subject: [PATCH 07/63] Fix `ContainerDebugCommandTest::testNoDumpedXML` --- .../Tests/Functional/ContainerDebugCommandTest.php | 2 +- .../Tests/Functional/app/ContainerDebug/no_dump.yml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/no_dump.yml diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php index 24c6faf332525..291a67cb83b4c 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php @@ -53,7 +53,7 @@ public function testNoDebug() public function testNoDumpedXML() { - static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'config.yml', 'debug' => true, 'debug.container.dump' => false]); + static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'no_dump.yml', 'debug' => true]); $application = new Application(static::$kernel); $application->setAutoExit(false); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/no_dump.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/no_dump.yml new file mode 100644 index 0000000000000..a9c709e9a6425 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/no_dump.yml @@ -0,0 +1,5 @@ +imports: + - { resource: config.yml } + +parameters: + debug.container.dump: false From a2e3d7c76f8072eff4a86e237949c25b9c16a588 Mon Sep 17 00:00:00 2001 From: rewrit3 Date: Fri, 30 May 2025 15:08:24 -0400 Subject: [PATCH 08/63] [Translation] Validate of pt_BR translation by a native speaker --- .../Validator/Resources/translations/validators.pt_BR.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf index a6be16580c6bd..0acf6dbf23a6c 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf @@ -468,7 +468,7 @@ This value is not a valid Twig template. - Este valor não é um modelo Twig válido. + Este valor não é um modelo Twig válido. From 43a549b35c290085438a68b04a725cbc5cd20883 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sat, 31 May 2025 00:01:35 +0200 Subject: [PATCH 09/63] switch to Composer 2 metadata The Composer 1 metadata are no longer up-to-date and the legacy API will be turned off in August anyway. --- .github/build-packages.php | 24 ++++++++++++++++++++---- .github/composer.json | 5 +++++ .github/workflows/unit-tests.yml | 10 ++++++++-- 3 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 .github/composer.json diff --git a/.github/build-packages.php b/.github/build-packages.php index d69a3c8198ec0..dda58049ab842 100644 --- a/.github/build-packages.php +++ b/.github/build-packages.php @@ -1,5 +1,9 @@ $_SERVER['argc']) { echo "Usage: branch version dir1 dir2 ... dirN\n"; exit(1); @@ -52,11 +56,23 @@ $packages[$package->name][$package->version] = $package; - $versions = @file_get_contents('https://repo.packagist.org/p/'.$package->name.'.json') ?: sprintf('{"packages":{"%s":{"%s":%s}}}', $package->name, $package->version, file_get_contents($dir.'/composer.json')); - $versions = json_decode($versions)->packages->{$package->name}; + if (false !== $taggedReleases = @file_get_contents('https://repo.packagist.org/p2/'.$package->name.'.json')) { + $versions = MetadataMinifier::expand(json_decode($taggedReleases, true)['packages'][$package->name]); + + foreach ($versions as $v => $p) { + $packages[$package->name] += [$v => $p]; + } + } + + if (false !== $devReleases = @file_get_contents('https://repo.packagist.org/p2/'.$package->name.'~dev.json')) { + $versions = MetadataMinifier::expand(json_decode($taggedReleases, true)['packages'][$package->name]); + } else { + $versions = sprintf('{"packages":{"%s":{"%s":%s}}}', $package->name, $package->version, file_get_contents($dir.'/composer.json')); + $versions = json_decode($versions, true)['packages'][$package->name]; + } - foreach ($versions as $v => $package) { - $packages[$package->name] += [$v => $package]; + foreach ($versions as $v => $p) { + $packages[$package->name] += [$v => $p]; } } diff --git a/.github/composer.json b/.github/composer.json new file mode 100644 index 0000000000000..5bd3935482174 --- /dev/null +++ b/.github/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "composer/metadata-minifier": "^1.0" + } +} diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 8e4c8516dad81..a8b46ce823cc0 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -92,12 +92,18 @@ jobs: # Create local composer packages for each patched components and reference them in composer.json files when cross-testing components if [[ ! "${{ matrix.mode }}" = *-deps ]]; then - php .github/build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit + cd .github + composer install + php ./build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit + cd .. else echo SYMFONY_DEPRECATIONS_HELPER=weak >> $GITHUB_ENV cp composer.json composer.json.orig echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json - php .github/build-packages.php HEAD^ $SYMFONY_VERSION $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | grep -v src/Symfony/Component/Intl/Resources/emoji) + cd .github + composer install + php ./build-packages.php HEAD^ $SYMFONY_VERSION $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | grep -v src/Symfony/Component/Intl/Resources/emoji) + cd .. mv composer.json composer.json.phpunit mv composer.json.orig composer.json fi From 0bd8eb210350538bb4e74d5aa7bc1912c83f4c37 Mon Sep 17 00:00:00 2001 From: matlec Date: Sun, 1 Jun 2025 15:12:01 +0200 Subject: [PATCH 10/63] [SecurityBundle] Remove `AnonymousFactory` leftovers --- .../SecurityBundle/DependencyInjection/SecurityExtension.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index 383f68d203aca..d75a1d8fe63e1 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -334,7 +334,7 @@ private function createFirewalls(array $config, ContainerBuilder $container): vo $authenticators[$name] = ServiceLocatorTagPass::register($container, $firewallAuthenticatorRefs); } $contextId = 'security.firewall.map.context.'.$name; - $isLazy = !$firewall['stateless'] && (!empty($firewall['anonymous']['lazy']) || $firewall['lazy']); + $isLazy = !$firewall['stateless'] && $firewall['lazy']; $context = new ChildDefinition($isLazy ? 'security.firewall.lazy_context' : 'security.firewall.context'); $context = $container->setDefinition($contextId, $context); $context @@ -685,7 +685,7 @@ private function getUserProvider(ContainerBuilder $container, string $id, array return $this->createMissingUserProvider($container, $id, $factoryKey); } - if ('remember_me' === $factoryKey || 'anonymous' === $factoryKey || 'custom_authenticators' === $factoryKey) { + if ('remember_me' === $factoryKey || 'custom_authenticators' === $factoryKey) { if ('custom_authenticators' === $factoryKey) { trigger_deprecation('symfony/security-bundle', '5.4', 'Not configuring explicitly the provider for the "%s" firewall is deprecated because it\'s ambiguous as there is more than one registered provider. Set the "provider" key to one of the configured providers, even if your custom authenticators don\'t use it.', $id); } From c8082a94d7e7a35311ff6f6cc98d8dffc2290298 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sun, 1 Jun 2025 21:36:09 +0200 Subject: [PATCH 11/63] skip interactive questions asked by Composer following #60587 so that the installation script is not blocked by Composer asking to install the bridge as a dev dependency: ``` The package you required is recommended to be placed in require-dev (because it is tagged as "testing") but you did not use --dev. Do you want to re-run the command with --dev? [yes]? ``` --- src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php index 45ad2b636e878..ad6da8a2e9237 100644 --- a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php +++ b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php @@ -237,7 +237,7 @@ $passthruOrFail("$COMPOSER require --no-update --no-interaction ".$SYMFONY_PHPUNIT_REQUIRE); } if (5.1 <= $PHPUNIT_VERSION && $PHPUNIT_VERSION < 5.4) { - $passthruOrFail("$COMPOSER require --no-update phpunit/phpunit-mock-objects \"~3.1.0\""); + $passthruOrFail("$COMPOSER require --no-update --no-interaction phpunit/phpunit-mock-objects \"~3.1.0\""); } if (preg_match('{\^((\d++\.)\d++)[\d\.]*$}', $info['requires']['php'], $phpVersion) && version_compare($phpVersion[2].'99', \PHP_VERSION, '<')) { @@ -253,13 +253,13 @@ if (realpath($p) === realpath($path)) { $path = $p; } - $passthruOrFail("$COMPOSER require --no-update symfony/phpunit-bridge \"*@dev\""); + $passthruOrFail("$COMPOSER require --no-update --no-interaction symfony/phpunit-bridge \"*@dev\""); $passthruOrFail("$COMPOSER config repositories.phpunit-bridge path ".escapeshellarg(str_replace('/', \DIRECTORY_SEPARATOR, $path))); if ('\\' === \DIRECTORY_SEPARATOR) { file_put_contents('composer.json', preg_replace('/^( {8})"phpunit-bridge": \{$/m', "$0\n$1 ".'"options": {"symlink": false},', file_get_contents('composer.json'))); } } else { - $passthruOrFail("$COMPOSER require --no-update symfony/phpunit-bridge \"*\""); + $passthruOrFail("$COMPOSER require --no-update --no-interaction symfony/phpunit-bridge \"*\""); } $prevRoot = getenv('COMPOSER_ROOT_VERSION'); putenv("COMPOSER_ROOT_VERSION=$PHPUNIT_VERSION.99"); From 16c8a943488e61452c9203108f7dfb3f07cf0da3 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Mon, 2 Jun 2025 18:05:30 +0200 Subject: [PATCH 12/63] use STARTTLS for SMTP with MailerSend --- .../Bridge/MailerSend/Transport/MailerSendSmtpTransport.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendSmtpTransport.php b/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendSmtpTransport.php index 84e2553a627cc..e5bfb4daddc2e 100644 --- a/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendSmtpTransport.php +++ b/src/Symfony/Component/Mailer/Bridge/MailerSend/Transport/MailerSendSmtpTransport.php @@ -22,7 +22,7 @@ final class MailerSendSmtpTransport extends EsmtpTransport { public function __construct(string $username, #[\SensitiveParameter] string $password, ?EventDispatcherInterface $dispatcher = null, ?LoggerInterface $logger = null) { - parent::__construct('smtp.mailersend.net', 587, true, $dispatcher, $logger); + parent::__construct('smtp.mailersend.net', 587, false, $dispatcher, $logger); $this->setUsername($username); $this->setPassword($password); From c2f9a7ca5774ce2de291f193238814887015a489 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 3 Jun 2025 08:46:12 +0200 Subject: [PATCH 13/63] [Yaml] fix support for years outside of the 32b range on x86 arch on PHP 8.4 --- src/Symfony/Component/Yaml/Inline.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Yaml/Inline.php b/src/Symfony/Component/Yaml/Inline.php index e1553f9d24e0a..0394c09b46221 100644 --- a/src/Symfony/Component/Yaml/Inline.php +++ b/src/Symfony/Component/Yaml/Inline.php @@ -737,7 +737,7 @@ private static function evaluateScalar(string $scalar, int $flags, array &$refer if (false !== $scalar = $time->getTimestamp()) { return $scalar; } - } catch (\ValueError) { + } catch (\DateRangeError|\ValueError) { // no-op } From bf9786c47f6fd0f6f48853221f01f2629be46aee Mon Sep 17 00:00:00 2001 From: Carlos Quintana Date: Tue, 27 May 2025 14:57:57 +0200 Subject: [PATCH 14/63] [FrameworkBundle] ensureKernelShutdown in tearDownAfterClass --- src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php index ee67fa7af9728..e87ac48244e24 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php +++ b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php @@ -11,6 +11,7 @@ namespace Symfony\Bundle\FrameworkBundle\Test; +use PHPUnit\Framework\Attributes\AfterClass; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -120,8 +121,11 @@ protected static function createKernel(array $options = []): KernelInterface /** * Shuts the kernel down if it was used in the test - called by the tearDown method by default. + * + * @afterClass */ - protected static function ensureKernelShutdown() + #[AfterClass] + public static function ensureKernelShutdown() { if (null !== static::$kernel) { static::$kernel->boot(); From 2f1408ff0f66c453677b7740a3d81429c88156d9 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 3 Jun 2025 22:16:57 +0200 Subject: [PATCH 15/63] implicitly run all Composer commands non-interactively --- src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php index ad6da8a2e9237..c021a4e8ee832 100644 --- a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php +++ b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php @@ -135,6 +135,7 @@ 'COMPOSER' => 'composer.json', 'COMPOSER_VENDOR_DIR' => 'vendor', 'COMPOSER_BIN_DIR' => 'bin', + 'COMPOSER_NO_INTERACTION' => '1', 'SYMFONY_SIMPLE_PHPUNIT_BIN_DIR' => __DIR__, ]; @@ -231,13 +232,13 @@ @copy("$PHPUNIT_VERSION_DIR/phpunit.xsd", 'phpunit.xsd'); chdir("$PHPUNIT_VERSION_DIR"); if ($SYMFONY_PHPUNIT_REMOVE) { - $passthruOrFail("$COMPOSER remove --no-update --no-interaction ".$SYMFONY_PHPUNIT_REMOVE); + $passthruOrFail("$COMPOSER remove --no-update ".$SYMFONY_PHPUNIT_REMOVE); } if ($SYMFONY_PHPUNIT_REQUIRE) { - $passthruOrFail("$COMPOSER require --no-update --no-interaction ".$SYMFONY_PHPUNIT_REQUIRE); + $passthruOrFail("$COMPOSER require --no-update ".$SYMFONY_PHPUNIT_REQUIRE); } if (5.1 <= $PHPUNIT_VERSION && $PHPUNIT_VERSION < 5.4) { - $passthruOrFail("$COMPOSER require --no-update --no-interaction phpunit/phpunit-mock-objects \"~3.1.0\""); + $passthruOrFail("$COMPOSER require --no-update phpunit/phpunit-mock-objects \"~3.1.0\""); } if (preg_match('{\^((\d++\.)\d++)[\d\.]*$}', $info['requires']['php'], $phpVersion) && version_compare($phpVersion[2].'99', \PHP_VERSION, '<')) { @@ -253,13 +254,13 @@ if (realpath($p) === realpath($path)) { $path = $p; } - $passthruOrFail("$COMPOSER require --no-update --no-interaction symfony/phpunit-bridge \"*@dev\""); + $passthruOrFail("$COMPOSER require --no-update symfony/phpunit-bridge \"*@dev\""); $passthruOrFail("$COMPOSER config repositories.phpunit-bridge path ".escapeshellarg(str_replace('/', \DIRECTORY_SEPARATOR, $path))); if ('\\' === \DIRECTORY_SEPARATOR) { file_put_contents('composer.json', preg_replace('/^( {8})"phpunit-bridge": \{$/m', "$0\n$1 ".'"options": {"symlink": false},', file_get_contents('composer.json'))); } } else { - $passthruOrFail("$COMPOSER require --no-update --no-interaction symfony/phpunit-bridge \"*\""); + $passthruOrFail("$COMPOSER require --no-update symfony/phpunit-bridge \"*\""); } $prevRoot = getenv('COMPOSER_ROOT_VERSION'); putenv("COMPOSER_ROOT_VERSION=$PHPUNIT_VERSION.99"); From 51205c8b376ebe1db4151d1fadacfd43a2f2f016 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 4 Jun 2025 09:39:44 +0200 Subject: [PATCH 16/63] Fix building packages in the CI --- .github/build-packages.php | 32 ++++++++++++++------------------ .github/composer.json | 5 ----- .github/workflows/unit-tests.yml | 10 ++-------- 3 files changed, 16 insertions(+), 31 deletions(-) delete mode 100644 .github/composer.json diff --git a/.github/build-packages.php b/.github/build-packages.php index dda58049ab842..4793b8483d7ed 100644 --- a/.github/build-packages.php +++ b/.github/build-packages.php @@ -1,8 +1,14 @@ '__unset' !== $v); + }, []); + + return $expandedVersions ?? []; +} if (3 > $_SERVER['argc']) { echo "Usage: branch version dir1 dir2 ... dirN\n"; @@ -56,24 +62,14 @@ $packages[$package->name][$package->version] = $package; - if (false !== $taggedReleases = @file_get_contents('https://repo.packagist.org/p2/'.$package->name.'.json')) { - $versions = MetadataMinifier::expand(json_decode($taggedReleases, true)['packages'][$package->name]); + foreach (['.json', '~dev.json'] as $ext) { + $versions = @file_get_contents('https://repo.packagist.org/p2/'.$package->name.$ext) ?: '[]'; + $versions = json_decode($versions, true)['packages'][$package->name] ?? []; - foreach ($versions as $v => $p) { - $packages[$package->name] += [$v => $p]; + foreach (expandComposerMetadata($versions) as $p) { + $packages[$package->name] += [$p['version'] => $p]; } } - - if (false !== $devReleases = @file_get_contents('https://repo.packagist.org/p2/'.$package->name.'~dev.json')) { - $versions = MetadataMinifier::expand(json_decode($taggedReleases, true)['packages'][$package->name]); - } else { - $versions = sprintf('{"packages":{"%s":{"%s":%s}}}', $package->name, $package->version, file_get_contents($dir.'/composer.json')); - $versions = json_decode($versions, true)['packages'][$package->name]; - } - - foreach ($versions as $v => $p) { - $packages[$package->name] += [$v => $p]; - } } file_put_contents('packages.json', json_encode(compact('packages'), $flags)); diff --git a/.github/composer.json b/.github/composer.json deleted file mode 100644 index 5bd3935482174..0000000000000 --- a/.github/composer.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require": { - "composer/metadata-minifier": "^1.0" - } -} diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index a8b46ce823cc0..8e4c8516dad81 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -92,18 +92,12 @@ jobs: # Create local composer packages for each patched components and reference them in composer.json files when cross-testing components if [[ ! "${{ matrix.mode }}" = *-deps ]]; then - cd .github - composer install - php ./build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit - cd .. + php .github/build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit else echo SYMFONY_DEPRECATIONS_HELPER=weak >> $GITHUB_ENV cp composer.json composer.json.orig echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json - cd .github - composer install - php ./build-packages.php HEAD^ $SYMFONY_VERSION $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | grep -v src/Symfony/Component/Intl/Resources/emoji) - cd .. + php .github/build-packages.php HEAD^ $SYMFONY_VERSION $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | grep -v src/Symfony/Component/Intl/Resources/emoji) mv composer.json composer.json.phpunit mv composer.json.orig composer.json fi From db646c72569d2d851129ea682f523610e80cbf9a Mon Sep 17 00:00:00 2001 From: Jiri Korenek Date: Tue, 3 Jun 2025 20:49:38 +0200 Subject: [PATCH 17/63] [Validator] review cs tran --- .../Validator/Resources/translations/validators.cs.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf index 2a2e559b95238..d5f48f0ae7ff2 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf @@ -468,7 +468,7 @@ This value is not a valid Twig template. - Tato hodnota není platná šablona Twig. + Tato hodnota není platná Twig šablona. From 0291ea140a91daf0a0b7ff4516fce4c60905b637 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 4 Jun 2025 15:57:42 +0200 Subject: [PATCH 18/63] Revert "bug #60564 [FrameworkBundle] ensureKernelShutdown in tearDownAfterClass (cquintana92)" This reverts commit ec76ab4f28454ebfbcf14287b2aac1351f00df79, reversing changes made to bc886008906f022a8fbf9796b943af928b64d86c. --- src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php index e87ac48244e24..ee67fa7af9728 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php +++ b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php @@ -11,7 +11,6 @@ namespace Symfony\Bundle\FrameworkBundle\Test; -use PHPUnit\Framework\Attributes\AfterClass; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -121,11 +120,8 @@ protected static function createKernel(array $options = []): KernelInterface /** * Shuts the kernel down if it was used in the test - called by the tearDown method by default. - * - * @afterClass */ - #[AfterClass] - public static function ensureKernelShutdown() + protected static function ensureKernelShutdown() { if (null !== static::$kernel) { static::$kernel->boot(); From c193b98678b125c94b9de24292c51b31d219aa69 Mon Sep 17 00:00:00 2001 From: Carlos Quintana Date: Tue, 27 May 2025 14:57:57 +0200 Subject: [PATCH 19/63] [FrameworkBundle] ensureKernelShutdown in tearDownAfterClass --- .../Bundle/FrameworkBundle/Test/KernelTestCase.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php index ee67fa7af9728..1312f6592176d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php +++ b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php @@ -45,6 +45,14 @@ protected function tearDown(): void static::$booted = false; } + public static function tearDownAfterClass(): void + { + static::ensureKernelShutdown(); + static::$class = null; + static::$kernel = null; + static::$booted = false; + } + /** * @throws \RuntimeException * @throws \LogicException From 90d9afb1b0fc5ac7ed8b12f27ec76ea5e32e45c5 Mon Sep 17 00:00:00 2001 From: llupa Date: Wed, 4 Jun 2025 17:20:03 +0200 Subject: [PATCH 20/63] [Intl] Add missing currency (NOK) localization (en_NO) --- .../Component/Intl/Resources/data/currencies/en_NO.php | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/Symfony/Component/Intl/Resources/data/currencies/en_NO.php diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/en_NO.php b/src/Symfony/Component/Intl/Resources/data/currencies/en_NO.php new file mode 100644 index 0000000000000..dc28340678e53 --- /dev/null +++ b/src/Symfony/Component/Intl/Resources/data/currencies/en_NO.php @@ -0,0 +1,10 @@ + [ + 'NOK' => [ + 'kr', + 'Norwegian Krone', + ], + ], +]; From 6156095b84894d9538859d2ec7259e4253862e5c Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 5 Jun 2025 11:00:17 +0200 Subject: [PATCH 21/63] cs tweak --- .github/workflows/unit-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 8e4c8516dad81..c58f9aae078d0 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -92,7 +92,7 @@ jobs: # Create local composer packages for each patched components and reference them in composer.json files when cross-testing components if [[ ! "${{ matrix.mode }}" = *-deps ]]; then - php .github/build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit + php .github/build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit else echo SYMFONY_DEPRECATIONS_HELPER=weak >> $GITHUB_ENV cp composer.json composer.json.orig From 7d67017dfbe61a6a6c5ff6484f6595c46fd3b15f Mon Sep 17 00:00:00 2001 From: llupa Date: Thu, 5 Jun 2025 14:51:53 +0200 Subject: [PATCH 22/63] [Intl] Ensure data consistency between alpha and numeric codes --- .../Data/Generator/RegionDataGenerator.php | 8 ++- .../Intl/Resources/data/regions/meta.php | 72 ------------------- .../Component/Intl/Tests/CountriesTest.php | 51 ++++--------- 3 files changed, 20 insertions(+), 111 deletions(-) diff --git a/src/Symfony/Component/Intl/Data/Generator/RegionDataGenerator.php b/src/Symfony/Component/Intl/Data/Generator/RegionDataGenerator.php index b03f56614c1ed..59c86ddc5c266 100644 --- a/src/Symfony/Component/Intl/Data/Generator/RegionDataGenerator.php +++ b/src/Symfony/Component/Intl/Data/Generator/RegionDataGenerator.php @@ -160,7 +160,7 @@ protected function generateDataForMeta(BundleEntryReaderInterface $reader, strin $alpha3ToAlpha2 = array_flip($alpha2ToAlpha3); asort($alpha3ToAlpha2); - $alpha2ToNumeric = $this->generateAlpha2ToNumericMapping($metadataBundle); + $alpha2ToNumeric = $this->generateAlpha2ToNumericMapping(array_flip($this->regionCodes), $metadataBundle); $numericToAlpha2 = []; foreach ($alpha2ToNumeric as $alpha2 => $numeric) { // Add underscore prefix to force keys with leading zeros to remain as string keys. @@ -231,7 +231,7 @@ private function generateAlpha2ToAlpha3Mapping(array $countries, ArrayAccessible return $alpha2ToAlpha3; } - private function generateAlpha2ToNumericMapping(ArrayAccessibleResourceBundle $metadataBundle): array + private function generateAlpha2ToNumericMapping(array $countries, ArrayAccessibleResourceBundle $metadataBundle): array { $aliases = iterator_to_array($metadataBundle['alias']['territory']); @@ -250,6 +250,10 @@ private function generateAlpha2ToNumericMapping(ArrayAccessibleResourceBundle $m continue; } + if (!isset($countries[$data['replacement']])) { + continue; + } + if ('deprecated' === $data['reason']) { continue; } diff --git a/src/Symfony/Component/Intl/Resources/data/regions/meta.php b/src/Symfony/Component/Intl/Resources/data/regions/meta.php index 1c9f233273af7..e0a99ccb7f5a8 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/meta.php +++ b/src/Symfony/Component/Intl/Resources/data/regions/meta.php @@ -755,7 +755,6 @@ 'ZWE' => 'ZW', ], 'Alpha2ToNumeric' => [ - 'AA' => '958', 'AD' => '020', 'AE' => '784', 'AF' => '004', @@ -943,18 +942,6 @@ 'PW' => '585', 'PY' => '600', 'QA' => '634', - 'QM' => '959', - 'QN' => '960', - 'QP' => '962', - 'QQ' => '963', - 'QR' => '964', - 'QS' => '965', - 'QT' => '966', - 'QV' => '968', - 'QW' => '969', - 'QX' => '970', - 'QY' => '971', - 'QZ' => '972', 'RE' => '638', 'RO' => '642', 'RS' => '688', @@ -1012,29 +999,6 @@ 'VU' => '548', 'WF' => '876', 'WS' => '882', - 'XC' => '975', - 'XD' => '976', - 'XE' => '977', - 'XF' => '978', - 'XG' => '979', - 'XH' => '980', - 'XI' => '981', - 'XJ' => '982', - 'XL' => '984', - 'XM' => '985', - 'XN' => '986', - 'XO' => '987', - 'XP' => '988', - 'XQ' => '989', - 'XR' => '990', - 'XS' => '991', - 'XT' => '992', - 'XU' => '993', - 'XV' => '994', - 'XW' => '995', - 'XX' => '996', - 'XY' => '997', - 'XZ' => '998', 'YE' => '887', 'YT' => '175', 'ZA' => '710', @@ -1042,7 +1006,6 @@ 'ZW' => '716', ], 'NumericToAlpha2' => [ - '_958' => 'AA', '_020' => 'AD', '_784' => 'AE', '_004' => 'AF', @@ -1230,18 +1193,6 @@ '_585' => 'PW', '_600' => 'PY', '_634' => 'QA', - '_959' => 'QM', - '_960' => 'QN', - '_962' => 'QP', - '_963' => 'QQ', - '_964' => 'QR', - '_965' => 'QS', - '_966' => 'QT', - '_968' => 'QV', - '_969' => 'QW', - '_970' => 'QX', - '_971' => 'QY', - '_972' => 'QZ', '_638' => 'RE', '_642' => 'RO', '_688' => 'RS', @@ -1299,29 +1250,6 @@ '_548' => 'VU', '_876' => 'WF', '_882' => 'WS', - '_975' => 'XC', - '_976' => 'XD', - '_977' => 'XE', - '_978' => 'XF', - '_979' => 'XG', - '_980' => 'XH', - '_981' => 'XI', - '_982' => 'XJ', - '_984' => 'XL', - '_985' => 'XM', - '_986' => 'XN', - '_987' => 'XO', - '_988' => 'XP', - '_989' => 'XQ', - '_990' => 'XR', - '_991' => 'XS', - '_992' => 'XT', - '_993' => 'XU', - '_994' => 'XV', - '_995' => 'XW', - '_996' => 'XX', - '_997' => 'XY', - '_998' => 'XZ', '_887' => 'YE', '_175' => 'YT', '_710' => 'ZA', diff --git a/src/Symfony/Component/Intl/Tests/CountriesTest.php b/src/Symfony/Component/Intl/Tests/CountriesTest.php index 7b921036b2a00..01f0f76f2e40a 100644 --- a/src/Symfony/Component/Intl/Tests/CountriesTest.php +++ b/src/Symfony/Component/Intl/Tests/CountriesTest.php @@ -527,7 +527,6 @@ class CountriesTest extends ResourceBundleTestCase ]; private const ALPHA2_TO_NUMERIC = [ - 'AA' => '958', 'AD' => '020', 'AE' => '784', 'AF' => '004', @@ -715,18 +714,6 @@ class CountriesTest extends ResourceBundleTestCase 'PW' => '585', 'PY' => '600', 'QA' => '634', - 'QM' => '959', - 'QN' => '960', - 'QP' => '962', - 'QQ' => '963', - 'QR' => '964', - 'QS' => '965', - 'QT' => '966', - 'QV' => '968', - 'QW' => '969', - 'QX' => '970', - 'QY' => '971', - 'QZ' => '972', 'RE' => '638', 'RO' => '642', 'RS' => '688', @@ -784,29 +771,6 @@ class CountriesTest extends ResourceBundleTestCase 'VU' => '548', 'WF' => '876', 'WS' => '882', - 'XC' => '975', - 'XD' => '976', - 'XE' => '977', - 'XF' => '978', - 'XG' => '979', - 'XH' => '980', - 'XI' => '981', - 'XJ' => '982', - 'XL' => '984', - 'XM' => '985', - 'XN' => '986', - 'XO' => '987', - 'XP' => '988', - 'XQ' => '989', - 'XR' => '990', - 'XS' => '991', - 'XT' => '992', - 'XU' => '993', - 'XV' => '994', - 'XW' => '995', - 'XX' => '996', - 'XY' => '997', - 'XZ' => '998', 'YE' => '887', 'YT' => '175', 'ZA' => '710', @@ -814,6 +778,19 @@ class CountriesTest extends ResourceBundleTestCase 'ZW' => '716', ]; + public function testAllGettersGenerateTheSameDataSetCount() + { + $alpha2Count = count(Countries::getCountryCodes()); + $alpha3Count = count(Countries::getAlpha3Codes()); + $numericCodesCount = count(Countries::getNumericCodes()); + $namesCount = count(Countries::getNames()); + + // we base all on Name count since it is the first to be generated + $this->assertEquals($namesCount, $alpha2Count, 'Alpha 2 count does not match'); + $this->assertEquals($namesCount, $alpha3Count, 'Alpha 3 count does not match'); + $this->assertEquals($namesCount, $numericCodesCount, 'Numeric codes count does not match'); + } + public function testGetCountryCodes() { $this->assertSame(self::COUNTRIES, Countries::getCountryCodes()); @@ -992,7 +969,7 @@ public function testGetNumericCode() public function testNumericCodeExists() { $this->assertTrue(Countries::numericCodeExists('250')); - $this->assertTrue(Countries::numericCodeExists('982')); + $this->assertTrue(Countries::numericCodeExists('008')); $this->assertTrue(Countries::numericCodeExists('716')); $this->assertTrue(Countries::numericCodeExists('036')); $this->assertFalse(Countries::numericCodeExists('667')); From f623d3a1eb8597e7dbe8dcf9609807105bc0ef6e Mon Sep 17 00:00:00 2001 From: "Nathanael d. Noblet" Date: Tue, 3 Jun 2025 14:24:16 -0600 Subject: [PATCH 23/63] Allow NumberToLocalizedStringTransformer empty values --- .../DataTransformer/MoneyToLocalizedStringTransformer.php | 4 ++-- .../DataTransformer/NumberToLocalizedStringTransformer.php | 4 ++-- .../MoneyToLocalizedStringTransformerTest.php | 7 +++++++ .../NumberToLocalizedStringTransformerTest.php | 1 + 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php index 7a8aacac6975c..d862b885d890b 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php @@ -33,14 +33,14 @@ public function __construct(?int $scale = 2, ?bool $grouping = true, ?int $round /** * Transforms a normalized format into a localized money string. * - * @param int|float|null $value Normalized number + * @param int|float|string|null $value Normalized number * * @throws TransformationFailedException if the given value is not numeric or * if the value cannot be transformed */ public function transform(mixed $value): string { - if (null !== $value && 1 !== $this->divisor) { + if (null !== $value && '' !== $value && 1 !== $this->divisor) { if (!is_numeric($value)) { throw new TransformationFailedException('Expected a numeric.'); } diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php index 71d225e58b40b..2bff37ad3f6ca 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php @@ -43,14 +43,14 @@ public function __construct(?int $scale = null, ?bool $grouping = false, ?int $r /** * Transforms a number type into localized number. * - * @param int|float|null $value Number value + * @param int|float|string|null $value Number value * * @throws TransformationFailedException if the given value is not numeric * or if the value cannot be transformed */ public function transform(mixed $value): string { - if (null === $value) { + if (null === $value || '' === $value) { return ''; } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php index 2d43e9533298d..f25d49981cd3d 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php @@ -54,6 +54,13 @@ public function testTransformExpectsNumeric() $transformer->transform('abcd'); } + public function testTransformEmptyString() + { + $transformer = new MoneyToLocalizedStringTransformer(null, null, null, 100); + + $this->assertSame('', $transformer->transform('')); + } + public function testTransformEmpty() { $transformer = new MoneyToLocalizedStringTransformer(); diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php index 37448db51030a..c0344b9f232ea 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php @@ -49,6 +49,7 @@ public static function provideTransformations() { return [ [null, '', 'de_AT'], + ['', '', 'de_AT'], [1, '1', 'de_AT'], [1.5, '1,5', 'de_AT'], [1234.5, '1234,5', 'de_AT'], From 56554c27054db8488c30e5f33fb5d770c9b81d27 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 6 Jun 2025 08:38:09 +0200 Subject: [PATCH 24/63] [VarDumper] Fix dumping LazyObjectState when using VarExporter v8 --- .../Component/VarDumper/Caster/SymfonyCaster.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/VarDumper/Caster/SymfonyCaster.php b/src/Symfony/Component/VarDumper/Caster/SymfonyCaster.php index ebc00f90ec8ab..676d95b98b02c 100644 --- a/src/Symfony/Component/VarDumper/Caster/SymfonyCaster.php +++ b/src/Symfony/Component/VarDumper/Caster/SymfonyCaster.php @@ -90,12 +90,14 @@ public static function castLazyObjectState($state, array $a, Stub $stub, bool $i $instance = $a['realInstance'] ?? null; - $a = ['status' => new ConstStub(match ($a['status']) { - LazyObjectState::STATUS_INITIALIZED_FULL => 'INITIALIZED_FULL', - LazyObjectState::STATUS_INITIALIZED_PARTIAL => 'INITIALIZED_PARTIAL', - LazyObjectState::STATUS_UNINITIALIZED_FULL => 'UNINITIALIZED_FULL', - LazyObjectState::STATUS_UNINITIALIZED_PARTIAL => 'UNINITIALIZED_PARTIAL', - }, $a['status'])]; + if (isset($a['status'])) { // forward-compat with Symfony 8 + $a = ['status' => new ConstStub(match ($a['status']) { + LazyObjectState::STATUS_INITIALIZED_FULL => 'INITIALIZED_FULL', + LazyObjectState::STATUS_INITIALIZED_PARTIAL => 'INITIALIZED_PARTIAL', + LazyObjectState::STATUS_UNINITIALIZED_FULL => 'UNINITIALIZED_FULL', + LazyObjectState::STATUS_UNINITIALIZED_PARTIAL => 'UNINITIALIZED_PARTIAL', + }, $a['status'])]; + } if ($instance) { $a['realInstance'] = $instance; From d8908286fff8ee9d9cb64ea0608717bd9396ade7 Mon Sep 17 00:00:00 2001 From: Larry Garfield Date: Fri, 6 Jun 2025 09:38:13 -0500 Subject: [PATCH 25/63] Improve docblock on compile() --- .../Component/DependencyInjection/ContainerBuilder.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php index 5be5b76f586b5..2771defe45134 100644 --- a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php +++ b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php @@ -742,10 +742,11 @@ public function deprecateParameter(string $name, string $package, string $versio * * The parameter bag is frozen; * * Extension loading is disabled. * - * @param bool $resolveEnvPlaceholders Whether %env()% parameters should be resolved using the current - * env vars or be replaced by uniquely identifiable placeholders. - * Set to "true" when you want to use the current ContainerBuilder - * directly, keep to "false" when the container is dumped instead. + * @param bool $resolveEnvPlaceholders Whether %env()% parameters should be resolved at build time using + * the current env var values (true), or be resolved at runtime based + * on the environment (false). In general, this should be set to "true" + * when you want to use the current ContainerBuilder directly, and to + * "false" when the container is dumped instead. * * @return void */ From d39a7acbf83354f5799a15243db4f87c4c6a3613 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 12 Jun 2025 14:21:06 +0200 Subject: [PATCH 26/63] fix compatibility with Symfony 7.4 --- src/Symfony/Component/Runtime/SymfonyRuntime.php | 6 +++++- src/Symfony/Component/Runtime/Tests/phpt/application.php | 6 +++++- src/Symfony/Component/Runtime/Tests/phpt/command_list.php | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Runtime/SymfonyRuntime.php b/src/Symfony/Component/Runtime/SymfonyRuntime.php index b8ba83980bc43..28918155f4412 100644 --- a/src/Symfony/Component/Runtime/SymfonyRuntime.php +++ b/src/Symfony/Component/Runtime/SymfonyRuntime.php @@ -144,7 +144,11 @@ public function getRunner(?object $application): RunnerInterface if (!$application->getName() || !$console->has($application->getName())) { $application->setName($_SERVER['argv'][0]); - $console->add($application); + if (method_exists($console, 'addCommand')) { + $console->addCommand($application); + } else { + $console->add($application); + } } $console->setDefaultCommand($application->getName(), true); diff --git a/src/Symfony/Component/Runtime/Tests/phpt/application.php b/src/Symfony/Component/Runtime/Tests/phpt/application.php index ca2de555edfb7..b51947c2afaf1 100644 --- a/src/Symfony/Component/Runtime/Tests/phpt/application.php +++ b/src/Symfony/Component/Runtime/Tests/phpt/application.php @@ -25,7 +25,11 @@ }); $app = new Application(); - $app->add($command); + if (method_exists($app, 'addCommand')) { + $app->addCommand($command); + } else { + $app->add($command); + } $app->setDefaultCommand('go', true); return $app; diff --git a/src/Symfony/Component/Runtime/Tests/phpt/command_list.php b/src/Symfony/Component/Runtime/Tests/phpt/command_list.php index 929b4401e86b9..aa40eda627151 100644 --- a/src/Symfony/Component/Runtime/Tests/phpt/command_list.php +++ b/src/Symfony/Component/Runtime/Tests/phpt/command_list.php @@ -23,7 +23,11 @@ $command->setName('my_command'); [$cmd, $args] = $runtime->getResolver(require __DIR__.'/command.php')->resolve(); - $app->add($cmd(...$args)); + if (method_exists($app, 'addCommand')) { + $app->addCommand($cmd(...$args)); + } else { + $app->add($cmd(...$args)); + } return $app; }; From df064b0369b1e084402bd52170a393627c21c48c Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Wed, 21 May 2025 14:18:44 +0200 Subject: [PATCH 27/63] [HttpCache] Hit the backend only once after waiting for the cache lock --- .../HttpCache/CacheWasLockedException.php | 19 ++++++ .../HttpKernel/HttpCache/HttpCache.php | 18 +++--- .../Tests/HttpCache/HttpCacheTest.php | 60 +++++++++++++++++++ .../Tests/HttpCache/HttpCacheTestCase.php | 11 +++- 4 files changed, 96 insertions(+), 12 deletions(-) create mode 100644 src/Symfony/Component/HttpKernel/HttpCache/CacheWasLockedException.php diff --git a/src/Symfony/Component/HttpKernel/HttpCache/CacheWasLockedException.php b/src/Symfony/Component/HttpKernel/HttpCache/CacheWasLockedException.php new file mode 100644 index 0000000000000..f13946ad71a68 --- /dev/null +++ b/src/Symfony/Component/HttpKernel/HttpCache/CacheWasLockedException.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\HttpKernel\HttpCache; + +/** + * @internal + */ +class CacheWasLockedException extends \Exception +{ +} diff --git a/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php b/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php index 3b484e5c3e1ec..bce0e99b5eca3 100644 --- a/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php +++ b/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php @@ -219,7 +219,13 @@ public function handle(Request $request, int $type = HttpKernelInterface::MAIN_R $this->record($request, 'reload'); $response = $this->fetch($request, $catch); } else { - $response = $this->lookup($request, $catch); + $response = null; + do { + try { + $response = $this->lookup($request, $catch); + } catch (CacheWasLockedException) { + } + } while (null === $response); } $this->restoreResponseBody($request, $response); @@ -576,15 +582,7 @@ protected function lock(Request $request, Response $entry): bool // wait for the lock to be released if ($this->waitForLock($request)) { - // replace the current entry with the fresh one - $new = $this->lookup($request); - $entry->headers = $new->headers; - $entry->setContent($new->getContent()); - $entry->setStatusCode($new->getStatusCode()); - $entry->setProtocolVersion($new->getProtocolVersion()); - foreach ($new->headers->getCookies() as $cookie) { - $entry->headers->setCookie($cookie); - } + throw new CacheWasLockedException(); // unwind back to handle(), try again } else { // backend is slow as hell, send a 503 response (to avoid the dog pile effect) $entry->setStatusCode(503); diff --git a/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php b/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php index a72c08b8723a2..39f00a0139a25 100644 --- a/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php @@ -18,6 +18,7 @@ use Symfony\Component\HttpKernel\Event\TerminateEvent; use Symfony\Component\HttpKernel\HttpCache\Esi; use Symfony\Component\HttpKernel\HttpCache\HttpCache; +use Symfony\Component\HttpKernel\HttpCache\Store; use Symfony\Component\HttpKernel\HttpCache\StoreInterface; use Symfony\Component\HttpKernel\HttpKernelInterface; use Symfony\Component\HttpKernel\Kernel; @@ -717,6 +718,7 @@ public function testDegradationWhenCacheLocked() */ sleep(10); + $this->store = $this->createStore(); // create another store instance that does not hold the current lock $this->request('GET', '/'); $this->assertHttpKernelIsNotCalled(); $this->assertEquals(200, $this->response->getStatusCode()); @@ -735,6 +737,64 @@ public function testDegradationWhenCacheLocked() $this->assertEquals('Old response', $this->response->getContent()); } + public function testHitBackendOnlyOnceWhenCacheWasLocked() + { + // Disable stale-while-revalidate, it circumvents waiting for the lock + $this->cacheConfig['stale_while_revalidate'] = 0; + + $this->setNextResponses([ + [ + 'status' => 200, + 'body' => 'initial response', + 'headers' => [ + 'Cache-Control' => 'public, no-cache', + 'Last-Modified' => 'some while ago', + ], + ], + [ + 'status' => 304, + 'body' => '', + 'headers' => [ + 'Cache-Control' => 'public, no-cache', + 'Last-Modified' => 'some while ago', + ], + ], + [ + 'status' => 500, + 'body' => 'The backend should not be called twice during revalidation', + 'headers' => [], + ], + ]); + + $this->request('GET', '/'); // warm the cache + + // Use a store that simulates a cache entry being locked upon first attempt + $this->store = new class(sys_get_temp_dir() . '/http_cache') extends Store { + private bool $hasLock = false; + + public function lock(Request $request): bool + { + $hasLock = $this->hasLock; + $this->hasLock = true; + + return $hasLock; + } + + public function isLocked(Request $request): bool + { + return false; + } + }; + + $this->request('GET', '/'); // hit the cache with simulated lock/concurrency block + + $this->assertEquals(200, $this->response->getStatusCode()); + $this->assertEquals('initial response', $this->response->getContent()); + + $traces = $this->cache->getTraces(); + $this->assertSame(['stale', 'valid', 'store'], current($traces)); + } + public function testHitsCachedResponseWithSMaxAgeDirective() { $time = \DateTimeImmutable::createFromFormat('U', time() - 5); diff --git a/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php b/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php index 26a29f16b2b75..88f6bed56f4cf 100644 --- a/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php +++ b/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php @@ -30,7 +30,7 @@ abstract class HttpCacheTestCase extends TestCase protected $responses; protected $catch; protected $esi; - protected Store $store; + protected ?Store $store = null; protected function setUp(): void { @@ -115,7 +115,9 @@ public function request($method, $uri = '/', $server = [], $cookies = [], $esi = $this->kernel->reset(); - $this->store = new Store(sys_get_temp_dir().'/http_cache'); + if (! $this->store) { + $this->store = $this->createStore(); + } if (!isset($this->cacheConfig['debug'])) { $this->cacheConfig['debug'] = true; @@ -183,4 +185,9 @@ public static function clearDirectory($directory) closedir($fp); } + + protected function createStore(): Store + { + return new Store(sys_get_temp_dir() . '/http_cache'); + } } From f21b2f4df21c52a17bcb8f26c623f55271b8d951 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 13 Jun 2025 09:15:29 +0200 Subject: [PATCH 28/63] Silence E_DEPRECATED and E_USER_DEPRECATED --- src/Symfony/Component/ErrorHandler/Debug.php | 2 +- src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php | 2 +- src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/ErrorHandler/Debug.php b/src/Symfony/Component/ErrorHandler/Debug.php index d54a38c4cac12..b090040d024b4 100644 --- a/src/Symfony/Component/ErrorHandler/Debug.php +++ b/src/Symfony/Component/ErrorHandler/Debug.php @@ -20,7 +20,7 @@ class Debug { public static function enable(): ErrorHandler { - error_reporting(-1); + error_reporting(\E_ALL & ~\E_DEPRECATED & ~\E_USER_DEPRECATED); if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { ini_set('display_errors', 0); diff --git a/src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php b/src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php index a252814570f2e..c0c290e686800 100644 --- a/src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php +++ b/src/Symfony/Component/Runtime/Internal/BasicErrorHandler.php @@ -20,7 +20,7 @@ class BasicErrorHandler { public static function register(bool $debug): void { - error_reporting(-1); + error_reporting(\E_ALL & ~\E_DEPRECATED & ~\E_USER_DEPRECATED); if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { ini_set('display_errors', $debug); diff --git a/src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php b/src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php index 0dfc7de0ca7a0..47c67605b0430 100644 --- a/src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php +++ b/src/Symfony/Component/Runtime/Internal/SymfonyErrorHandler.php @@ -30,7 +30,7 @@ public static function register(bool $debug): void return; } - error_reporting(-1); + error_reporting(\E_ALL & ~\E_DEPRECATED & ~\E_USER_DEPRECATED); if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { ini_set('display_errors', $debug); From bd45a4c1b1053b7a4a6f467b4eb7c7f311f8adc2 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 12 Jun 2025 23:42:44 +0200 Subject: [PATCH 29/63] flip excluded properties with keys with Doctrine-style constraint config --- .../Component/Validator/Constraints/Cascade.php | 1 + .../Validator/Tests/Constraints/CascadeTest.php | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/Symfony/Component/Validator/Constraints/Cascade.php b/src/Symfony/Component/Validator/Constraints/Cascade.php index 05de8c78bd02a..2a339612893b9 100644 --- a/src/Symfony/Component/Validator/Constraints/Cascade.php +++ b/src/Symfony/Component/Validator/Constraints/Cascade.php @@ -29,6 +29,7 @@ public function __construct(array|string|null $exclude = null, ?array $options = { if (\is_array($exclude) && !array_is_list($exclude)) { $options = array_merge($exclude, $options ?? []); + $options['exclude'] = array_flip((array) ($options['exclude'] ?? [])); } else { $this->exclude = array_flip((array) $exclude); } diff --git a/src/Symfony/Component/Validator/Tests/Constraints/CascadeTest.php b/src/Symfony/Component/Validator/Tests/Constraints/CascadeTest.php index ee3798079dc39..2ef4c9c83c549 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/CascadeTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/CascadeTest.php @@ -27,6 +27,20 @@ public function testCascadeAttribute() self::assertTrue($loader->loadClassMetadata($metadata)); self::assertSame(CascadingStrategy::CASCADE, $metadata->getCascadingStrategy()); } + + public function testExcludeProperties() + { + $constraint = new Cascade(['foo', 'bar']); + + self::assertSame(['foo' => 0, 'bar' => 1], $constraint->exclude); + } + + public function testExcludePropertiesDoctrineStyle() + { + $constraint = new Cascade(['exclude' => ['foo', 'bar']]); + + self::assertSame(['foo' => 0, 'bar' => 1], $constraint->exclude); + } } #[Cascade] From c45ecfa5a48bfcdabf956ea9cf0bc2b3d7e6e4d4 Mon Sep 17 00:00:00 2001 From: matlec Date: Fri, 13 Jun 2025 14:01:54 +0200 Subject: [PATCH 30/63] [DomCrawler] Allow selecting `button`s by their `value` --- src/Symfony/Component/DomCrawler/Crawler.php | 4 +-- .../Tests/AbstractCrawlerTestCase.php | 30 ++++++++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Component/DomCrawler/Crawler.php b/src/Symfony/Component/DomCrawler/Crawler.php index 005a69319263e..71e8528f126cd 100644 --- a/src/Symfony/Component/DomCrawler/Crawler.php +++ b/src/Symfony/Component/DomCrawler/Crawler.php @@ -770,12 +770,12 @@ public function selectImage(string $value): static } /** - * Selects a button by name or alt value for images. + * Selects a button by its text content, id, value, name or alt attribute. */ public function selectButton(string $value): static { return $this->filterRelativeXPath( - sprintf('descendant-or-self::input[((contains(%1$s, "submit") or contains(%1$s, "button")) and contains(concat(\' \', normalize-space(string(@value)), \' \'), %2$s)) or (contains(%1$s, "image") and contains(concat(\' \', normalize-space(string(@alt)), \' \'), %2$s)) or @id=%3$s or @name=%3$s] | descendant-or-self::button[contains(concat(\' \', normalize-space(string(.)), \' \'), %2$s) or @id=%3$s or @name=%3$s]', 'translate(@type, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")', static::xpathLiteral(' '.$value.' '), static::xpathLiteral($value)) + sprintf('descendant-or-self::input[((contains(%1$s, "submit") or contains(%1$s, "button")) and contains(concat(\' \', normalize-space(string(@value)), \' \'), %2$s)) or (contains(%1$s, "image") and contains(concat(\' \', normalize-space(string(@alt)), \' \'), %2$s)) or @id=%3$s or @name=%3$s] | descendant-or-self::button[contains(concat(\' \', normalize-space(string(.)), \' \'), %2$s) or contains(concat(\' \', normalize-space(string(@value)), \' \'), %2$s) or @id=%3$s or @name=%3$s]', 'translate(@type, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")', static::xpathLiteral(' '.$value.' '), static::xpathLiteral($value)) ); } diff --git a/src/Symfony/Component/DomCrawler/Tests/AbstractCrawlerTestCase.php b/src/Symfony/Component/DomCrawler/Tests/AbstractCrawlerTestCase.php index 5cdbbbf45870d..53169efcab8e5 100644 --- a/src/Symfony/Component/DomCrawler/Tests/AbstractCrawlerTestCase.php +++ b/src/Symfony/Component/DomCrawler/Tests/AbstractCrawlerTestCase.php @@ -452,10 +452,10 @@ public function testFilterXpathComplexQueries() $this->assertCount(0, $crawler->filterXPath('/body')); $this->assertCount(1, $crawler->filterXPath('./body')); $this->assertCount(1, $crawler->filterXPath('.//body')); - $this->assertCount(5, $crawler->filterXPath('.//input')); + $this->assertCount(6, $crawler->filterXPath('.//input')); $this->assertCount(4, $crawler->filterXPath('//form')->filterXPath('//button | //input')); $this->assertCount(1, $crawler->filterXPath('body')); - $this->assertCount(6, $crawler->filterXPath('//button | //input')); + $this->assertCount(8, $crawler->filterXPath('//button | //input')); $this->assertCount(1, $crawler->filterXPath('//body')); $this->assertCount(1, $crawler->filterXPath('descendant-or-self::body')); $this->assertCount(1, $crawler->filterXPath('//div[@id="parent"]')->filterXPath('./div'), 'A child selection finds only the current div'); @@ -723,16 +723,23 @@ public function testSelectButton() $this->assertNotSame($crawler, $crawler->selectButton('FooValue'), '->selectButton() returns a new instance of a crawler'); $this->assertInstanceOf(Crawler::class, $crawler->selectButton('FooValue'), '->selectButton() returns a new instance of a crawler'); - $this->assertEquals(1, $crawler->selectButton('FooValue')->count(), '->selectButton() selects buttons'); - $this->assertEquals(1, $crawler->selectButton('FooName')->count(), '->selectButton() selects buttons'); - $this->assertEquals(1, $crawler->selectButton('FooId')->count(), '->selectButton() selects buttons'); + $this->assertCount(1, $crawler->selectButton('FooValue'), '->selectButton() selects type-submit inputs by value'); + $this->assertCount(1, $crawler->selectButton('FooName'), '->selectButton() selects type-submit inputs by name'); + $this->assertCount(1, $crawler->selectButton('FooId'), '->selectButton() selects type-submit inputs by id'); - $this->assertEquals(1, $crawler->selectButton('BarValue')->count(), '->selectButton() selects buttons'); - $this->assertEquals(1, $crawler->selectButton('BarName')->count(), '->selectButton() selects buttons'); - $this->assertEquals(1, $crawler->selectButton('BarId')->count(), '->selectButton() selects buttons'); + $this->assertCount(1, $crawler->selectButton('BarValue'), '->selectButton() selects type-button inputs by value'); + $this->assertCount(1, $crawler->selectButton('BarName'), '->selectButton() selects type-button inputs by name'); + $this->assertCount(1, $crawler->selectButton('BarId'), '->selectButton() selects type-button inputs by id'); - $this->assertEquals(1, $crawler->selectButton('FooBarValue')->count(), '->selectButton() selects buttons with form attribute too'); - $this->assertEquals(1, $crawler->selectButton('FooBarName')->count(), '->selectButton() selects buttons with form attribute too'); + $this->assertCount(1, $crawler->selectButton('ImageAlt'), '->selectButton() selects type-image inputs by alt'); + + $this->assertCount(1, $crawler->selectButton('ButtonValue'), '->selectButton() selects buttons by value'); + $this->assertCount(1, $crawler->selectButton('ButtonName'), '->selectButton() selects buttons by name'); + $this->assertCount(1, $crawler->selectButton('ButtonId'), '->selectButton() selects buttons by id'); + $this->assertCount(1, $crawler->selectButton('ButtonText'), '->selectButton() selects buttons by text content'); + + $this->assertCount(1, $crawler->selectButton('FooBarValue'), '->selectButton() selects buttons with form attribute too'); + $this->assertCount(1, $crawler->selectButton('FooBarName'), '->selectButton() selects buttons with form attribute too'); } public function testSelectButtonWithSingleQuotesInNameAttribute() @@ -1322,6 +1329,9 @@ public function createTestCrawler($uri = null) + + +
  • One
  • Two
  • From fbcbabda0dbf85d6624d5cfffd162bb1469d1a90 Mon Sep 17 00:00:00 2001 From: matlec Date: Fri, 13 Jun 2025 17:02:47 +0200 Subject: [PATCH 31/63] [Security] Handle non-callable implementations of `FirewallListenerInterface` --- .../Component/Security/Http/Firewall.php | 6 +- .../Security/Http/Tests/FirewallTest.php | 57 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Security/Http/Firewall.php b/src/Symfony/Component/Security/Http/Firewall.php index f2f86a5dfa7b2..354181c872d56 100644 --- a/src/Symfony/Component/Security/Http/Firewall.php +++ b/src/Symfony/Component/Security/Http/Firewall.php @@ -125,7 +125,11 @@ public static function getSubscribedEvents() protected function callListeners(RequestEvent $event, iterable $listeners) { foreach ($listeners as $listener) { - $listener($event); + if (!$listener instanceof FirewallListenerInterface) { + $listener($event); + } elseif (false !== $listener->supports($event->getRequest())) { + $listener->authenticate($event); + } if ($event->hasResponse()) { break; diff --git a/src/Symfony/Component/Security/Http/Tests/FirewallTest.php b/src/Symfony/Component/Security/Http/Tests/FirewallTest.php index f9417d237433c..89040f3875f2b 100644 --- a/src/Symfony/Component/Security/Http/Tests/FirewallTest.php +++ b/src/Symfony/Component/Security/Http/Tests/FirewallTest.php @@ -18,7 +18,9 @@ use Symfony\Component\HttpKernel\Event\RequestEvent; use Symfony\Component\HttpKernel\HttpKernelInterface; use Symfony\Component\Security\Http\Firewall; +use Symfony\Component\Security\Http\Firewall\AbstractListener; use Symfony\Component\Security\Http\Firewall\ExceptionListener; +use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface; use Symfony\Component\Security\Http\FirewallMapInterface; class FirewallTest extends TestCase @@ -97,4 +99,59 @@ public function testOnKernelRequestWithSubRequest() $this->assertFalse($event->hasResponse()); } + + public function testListenersAreCalled() + { + $calledListeners = []; + + $callableListener = static function() use(&$calledListeners) { $calledListeners[] = 'callableListener'; }; + $firewallListener = new class($calledListeners) implements FirewallListenerInterface { + public function __construct(private array &$calledListeners) {} + + public function supports(Request $request): ?bool + { + return true; + } + + public function authenticate(RequestEvent $event): void + { + $this->calledListeners[] = 'firewallListener'; + } + + public static function getPriority(): int + { + return 0; + } + }; + $callableFirewallListener = new class($calledListeners) extends AbstractListener { + public function __construct(private array &$calledListeners) {} + + public function supports(Request $request): ?bool + { + return true; + } + + public function authenticate(RequestEvent $event): void + { + $this->calledListeners[] = 'callableFirewallListener'; + } + }; + + $request = $this->createMock(Request::class); + + $map = $this->createMock(FirewallMapInterface::class); + $map + ->expects($this->once()) + ->method('getListeners') + ->with($this->equalTo($request)) + ->willReturn([[$callableListener, $firewallListener, $callableFirewallListener], null, null]) + ; + + $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST); + + $firewall = new Firewall($map, $this->createMock(EventDispatcherInterface::class)); + $firewall->onKernelRequest($event); + + $this->assertSame(['callableListener', 'firewallListener', 'callableFirewallListener'], $calledListeners); + } } From 3271b7bbe511adf1a96b6b03c63ed049ed6e8741 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 13 Jun 2025 23:29:58 +0200 Subject: [PATCH 32/63] fix compatibility with Relay 0.11 --- .../Cache/Traits/Relay/BgsaveTrait.php | 36 +++++++++++++++++++ .../Component/Cache/Traits/RelayProxy.php | 7 ++-- 2 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 src/Symfony/Component/Cache/Traits/Relay/BgsaveTrait.php diff --git a/src/Symfony/Component/Cache/Traits/Relay/BgsaveTrait.php b/src/Symfony/Component/Cache/Traits/Relay/BgsaveTrait.php new file mode 100644 index 0000000000000..367f82f7bb2b6 --- /dev/null +++ b/src/Symfony/Component/Cache/Traits/Relay/BgsaveTrait.php @@ -0,0 +1,36 @@ + + * + * 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', '>=')) { + /** + * @internal + */ + trait BgsaveTrait + { + public function bgsave($arg = null): \Relay\Relay|bool + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args()); + } + } +} else { + /** + * @internal + */ + trait BgsaveTrait + { + public function bgsave($schedule = false): \Relay\Relay|bool + { + return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args()); + } + } +} diff --git a/src/Symfony/Component/Cache/Traits/RelayProxy.php b/src/Symfony/Component/Cache/Traits/RelayProxy.php index e86c2102a4d61..620eb1ba4d746 100644 --- a/src/Symfony/Component/Cache/Traits/RelayProxy.php +++ b/src/Symfony/Component/Cache/Traits/RelayProxy.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Cache\Traits; +use Symfony\Component\Cache\Traits\Relay\BgsaveTrait; use Symfony\Component\Cache\Traits\Relay\CopyTrait; use Symfony\Component\Cache\Traits\Relay\GeosearchTrait; use Symfony\Component\Cache\Traits\Relay\GetrangeTrait; @@ -32,6 +33,7 @@ class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); */ class RelayProxy extends \Relay\Relay implements ResetInterface, LazyObjectInterface { + use BgsaveTrait; use CopyTrait; use GeosearchTrait; use GetrangeTrait; @@ -341,11 +343,6 @@ public function lcs($key1, $key2, $options = null): mixed return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lcs(...\func_get_args()); } - public function bgsave($schedule = false): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args()); - } - public function save(): \Relay\Relay|bool { return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->save(...\func_get_args()); From 451926bcf9a5e81e0562a645511037880070d40d Mon Sep 17 00:00:00 2001 From: "Roland Franssen :)" Date: Wed, 11 Jun 2025 10:44:40 +0200 Subject: [PATCH 33/63] [Messenger] Fix float value for worker memory limit --- .../Command/ConsumeMessagesCommand.php | 4 +- .../Command/ConsumeMessagesCommandTest.php | 46 +++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php b/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php index 7aa8752f5616c..61fe6d9b11eec 100644 --- a/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php +++ b/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php @@ -289,7 +289,7 @@ private function convertToBytes(string $memoryLimit): int } elseif (str_starts_with($max, '0')) { $max = \intval($max, 8); } else { - $max = (int) $max; + $max = (float) $max; } switch (substr(rtrim($memoryLimit, 'b'), -1)) { @@ -302,6 +302,6 @@ private function convertToBytes(string $memoryLimit): int case 'k': $max *= 1024; } - return $max; + return (int) $max; } } diff --git a/src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php b/src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php index 4ff6b66d11f35..1a42005c7cf98 100644 --- a/src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php +++ b/src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php @@ -12,6 +12,8 @@ namespace Symfony\Component\Messenger\Tests\Command; use PHPUnit\Framework\TestCase; +use Psr\Log\LoggerInterface; +use Psr\Log\LoggerTrait; use Symfony\Component\Console\Application; use Symfony\Component\Console\Exception\InvalidOptionException; use Symfony\Component\Console\Tester\CommandCompletionTester; @@ -214,6 +216,50 @@ public function testRunWithTimeLimit() $this->assertStringContainsString('[OK] Consuming messages from transport "dummy-receiver"', $tester->getDisplay()); } + public function testRunWithMemoryLimit() + { + $envelope = new Envelope(new \stdClass(), [new BusNameStamp('dummy-bus')]); + + $receiver = $this->createMock(ReceiverInterface::class); + $receiver->method('get')->willReturn([$envelope]); + + $receiverLocator = $this->createMock(ContainerInterface::class); + $receiverLocator->method('has')->with('dummy-receiver')->willReturn(true); + $receiverLocator->method('get')->with('dummy-receiver')->willReturn($receiver); + + $bus = $this->createMock(MessageBusInterface::class); + + $busLocator = $this->createMock(ContainerInterface::class); + $busLocator->method('has')->with('dummy-bus')->willReturn(true); + $busLocator->method('get')->with('dummy-bus')->willReturn($bus); + + $logger = new class() implements LoggerInterface { + use LoggerTrait; + + public array $logs = []; + + public function log(...$args): void + { + $this->logs[] = $args; + } + }; + $command = new ConsumeMessagesCommand(new RoutableMessageBus($busLocator), $receiverLocator, new EventDispatcher(), $logger); + + $application = new Application(); + $application->add($command); + $tester = new CommandTester($application->get('messenger:consume')); + $tester->execute([ + 'receivers' => ['dummy-receiver'], + '--memory-limit' => '1.5M', + ]); + + $this->assertSame(0, $tester->getStatusCode()); + $this->assertStringContainsString('[OK] Consuming messages from transport "dummy-receiver"', $tester->getDisplay()); + $this->assertStringContainsString('The worker will automatically exit once it has exceeded 1.5M of memory', $tester->getDisplay()); + + $this->assertSame(1572864, $logger->logs[1][2]['limit']); + } + /** * @dataProvider provideCompletionSuggestions */ From 23b9c4f6268e5aa8e7bfc8ed93c2a77b2122283c Mon Sep 17 00:00:00 2001 From: rhel-eo Date: Thu, 5 Jun 2025 10:54:16 +0100 Subject: [PATCH 34/63] [FrameworkBundle] Fix allow `loose` as an email validation mode --- .../FrameworkBundle/DependencyInjection/Configuration.php | 2 +- .../Tests/DependencyInjection/PhpFrameworkExtensionTest.php | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php index bae8967a8b723..6bed89cf1fbf0 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php @@ -1067,7 +1067,7 @@ private function addValidationSection(ArrayNodeDefinition $rootNode, callable $e ->validate()->castToArray()->end() ->end() ->scalarNode('translation_domain')->defaultValue('validators')->end() - ->enumNode('email_validation_mode')->values((class_exists(Email::class) ? Email::VALIDATION_MODES : ['html5-allow-no-tld', 'html5', 'strict']) + ['loose'])->end() + ->enumNode('email_validation_mode')->values(array_merge(class_exists(Email::class) ? Email::VALIDATION_MODES : ['html5-allow-no-tld', 'html5', 'strict'], ['loose']))->end() ->arrayNode('mapping') ->addDefaultsIfNotSet() ->fixXmlConfig('path') diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/PhpFrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/PhpFrameworkExtensionTest.php index e5cc8522aafb4..bd455d64856ce 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/PhpFrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/PhpFrameworkExtensionTest.php @@ -272,5 +272,6 @@ public static function emailValidationModeProvider() foreach (Email::VALIDATION_MODES as $mode) { yield [$mode]; } + yield ['loose']; } } From 12b17e869dd46c278727e4e22c437c40a8d93c0d Mon Sep 17 00:00:00 2001 From: Max Baldanza Date: Fri, 13 Jun 2025 10:34:24 +0100 Subject: [PATCH 35/63] [FrameworkBundle] Fix argument not provided to `add_bus_name_stamp_middleware` The bus name only gets provided to `add_bus_name_stamp_middleware` if using the default middlewares meaning that if you want to define the middlewares yourself then you need to define this service or you get an error: `Too few arguments to function Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware::__construct(), 0 passed` --- .../FrameworkExtension.php | 10 ++++---- .../Fixtures/php/messenger_bus_name_stamp.php | 24 +++++++++++++++++++ .../Fixtures/xml/messenger_bus_name_stamp.xml | 20 ++++++++++++++++ .../Fixtures/yml/messenger_bus_name_stamp.yml | 17 +++++++++++++ .../FrameworkExtensionTestCase.php | 22 +++++++++++++++++ 5 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_bus_name_stamp.php create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_bus_name_stamp.xml create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_bus_name_stamp.yml diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 68386120e06b1..40834b3854649 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -2214,16 +2214,18 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder $defaultMiddleware['after'][0]['arguments'] = [$bus['default_middleware']['allow_no_senders']]; $defaultMiddleware['after'][1]['arguments'] = [$bus['default_middleware']['allow_no_handlers']]; - // argument to add_bus_name_stamp_middleware - $defaultMiddleware['before'][0]['arguments'] = [$busId]; - $middleware = array_merge($defaultMiddleware['before'], $middleware, $defaultMiddleware['after']); } - foreach ($middleware as $middlewareItem) { + foreach ($middleware as $key => $middlewareItem) { if (!$validationEnabled && \in_array($middlewareItem['id'], ['validation', 'messenger.middleware.validation'], true)) { throw new LogicException('The Validation middleware is only available when the Validator component is installed and enabled. Try running "composer require symfony/validator".'); } + + // argument to add_bus_name_stamp_middleware + if ('add_bus_name_stamp_middleware' === $middlewareItem['id']) { + $middleware[$key]['arguments'] = [$busId]; + } } if ($container->getParameter('kernel.debug') && class_exists(Stopwatch::class)) { diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_bus_name_stamp.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_bus_name_stamp.php new file mode 100644 index 0000000000000..5c9c3c31018aa --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_bus_name_stamp.php @@ -0,0 +1,24 @@ +loadFromExtension('framework', [ + 'annotations' => false, + 'http_method_override' => false, + 'handle_all_throwables' => true, + 'php_errors' => ['log' => true], + 'messenger' => [ + 'default_bus' => 'messenger.bus.commands', + 'buses' => [ + 'messenger.bus.commands' => [ + 'default_middleware' => false, + 'middleware' => [ + 'add_bus_name_stamp_middleware', + 'send_message', + 'handle_message', + ], + ], + 'messenger.bus.events' => [ + 'default_middleware' => true, + ], + ], + ], +]); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_bus_name_stamp.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_bus_name_stamp.xml new file mode 100644 index 0000000000000..bef24ed53c7a3 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_bus_name_stamp.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_bus_name_stamp.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_bus_name_stamp.yml new file mode 100644 index 0000000000000..954c66ae95f6f --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_bus_name_stamp.yml @@ -0,0 +1,17 @@ +framework: + annotations: false + http_method_override: false + handle_all_throwables: true + php_errors: + log: true + messenger: + default_bus: messenger.bus.commands + buses: + messenger.bus.commands: + default_middleware: false + middleware: + - "add_bus_name_stamp_middleware" + - "send_message" + - "handle_message" + messenger.bus.events: + default_middleware: true diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php index 7f94b83ce58c4..11dd7e848b9ce 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php @@ -1102,6 +1102,28 @@ public function testMessengerWithMultipleBuses() $this->assertSame('messenger.bus.commands', (string) $container->getAlias('messenger.default_bus')); } + public function testMessengerWithAddBusNameStampMiddleware() + { + $container = $this->createContainerFromFile('messenger_bus_name_stamp'); + + $this->assertTrue($container->has('messenger.bus.commands')); + $this->assertEquals([ + ['id' => 'add_bus_name_stamp_middleware', 'arguments' => ['messenger.bus.commands']], + ['id' => 'send_message', 'arguments' => []], + ['id' => 'handle_message', 'arguments' => []], + ], $container->getParameter('messenger.bus.commands.middleware')); + $this->assertTrue($container->has('messenger.bus.events')); + $this->assertSame([], $container->getDefinition('messenger.bus.events')->getArgument(0)); + $this->assertEquals([ + ['id' => 'add_bus_name_stamp_middleware', 'arguments' => ['messenger.bus.events']], + ['id' => 'reject_redelivered_message_middleware'], + ['id' => 'dispatch_after_current_bus'], + ['id' => 'failed_message_processing_middleware'], + ['id' => 'send_message', 'arguments' => [true]], + ['id' => 'handle_message', 'arguments' => [false]], + ], $container->getParameter('messenger.bus.events.middleware')); + } + public function testMessengerMiddlewareFactoryErroneousFormat() { $this->expectException(\InvalidArgumentException::class); From dfbe6c8865638c67d0fb655988ae425821b4f8a0 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 16 Jun 2025 17:34:04 +0200 Subject: [PATCH 36/63] [HttpClient] Limit curl's connection cache size --- src/Symfony/Component/HttpClient/Internal/CurlClientState.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/HttpClient/Internal/CurlClientState.php b/src/Symfony/Component/HttpClient/Internal/CurlClientState.php index 2a15248ebee18..e866786ed14ff 100644 --- a/src/Symfony/Component/HttpClient/Internal/CurlClientState.php +++ b/src/Symfony/Component/HttpClient/Internal/CurlClientState.php @@ -50,7 +50,7 @@ public function __construct(int $maxHostConnections, int $maxPendingPushes) curl_multi_setopt($this->handle, \CURLMOPT_PIPELINING, \CURLPIPE_MULTIPLEX); } if (\defined('CURLMOPT_MAX_HOST_CONNECTIONS') && 0 < $maxHostConnections) { - $maxHostConnections = curl_multi_setopt($this->handle, \CURLMOPT_MAX_HOST_CONNECTIONS, $maxHostConnections) ? 4294967295 : $maxHostConnections; + $maxHostConnections = curl_multi_setopt($this->handle, \CURLMOPT_MAX_HOST_CONNECTIONS, $maxHostConnections) ? min(50 * $maxHostConnections, 4294967295) : $maxHostConnections; } if (\defined('CURLMOPT_MAXCONNECTS') && 0 < $maxHostConnections) { curl_multi_setopt($this->handle, \CURLMOPT_MAXCONNECTS, $maxHostConnections); From 490a110ed83bd90d9cfe5130abb25dd7545c8d2c Mon Sep 17 00:00:00 2001 From: Orestis Date: Tue, 17 Jun 2025 11:50:15 +0200 Subject: [PATCH 37/63] Fix TraceableSerializer when collected caller from array map If the TraceableSerializer runs from a callable in an array_map, then the caller looses the file and the line because it was invoked. This causes a hard fail since the required items are not defined. The error is the following: TraceableSerializer.php line 174: Warning: Undefined array key "file". The fix is to get the file and the line from the following array item which always is the caller class. --- .../Serializer/Debug/TraceableSerializer.php | 4 +-- .../Tests/Debug/TraceableSerializerTest.php | 34 +++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php b/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php index dd22e8678e782..964fd75031833 100644 --- a/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php +++ b/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php @@ -179,8 +179,8 @@ private function getCaller(string $method, string $interface): array && $method === $trace[$i]['function'] && is_a($trace[$i]['class'], $interface, true) ) { - $file = $trace[$i]['file']; - $line = $trace[$i]['line']; + $file = $trace[$i]['file'] ?? $trace[$i + 1]['file']; + $line = $trace[$i]['line'] ?? $trace[$i + 1]['line']; break; } diff --git a/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php b/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php index ea3c851c6040b..dc6e4a6b7a1b6 100644 --- a/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php @@ -126,6 +126,40 @@ public function testAddDebugTraceIdInContext() $traceableSerializer->encode('data', 'format'); $traceableSerializer->decode('data', 'format'); } + + public function testCollectedCaller() + { + $serializer = new \Symfony\Component\Serializer\Serializer(); + + $collector = new SerializerDataCollector(); + $traceableSerializer = new TraceableSerializer($serializer, $collector); + + $traceableSerializer->normalize('data'); + $collector->lateCollect(); + + $this->assertSame([ + 'name' => 'TraceableSerializerTest.php', + 'file' => __FILE__, + 'line' => __LINE__ - 6, + ], $collector->getData()['normalize'][0]['caller']); + } + + public function testCollectedCallerFromArrayMap() + { + $serializer = new \Symfony\Component\Serializer\Serializer(); + + $collector = new SerializerDataCollector(); + $traceableSerializer = new TraceableSerializer($serializer, $collector); + + array_map([$traceableSerializer, 'normalize'], ['data']); + $collector->lateCollect(); + + $this->assertSame([ + 'name' => 'TraceableSerializerTest.php', + 'file' => __FILE__, + 'line' => __LINE__ - 6, + ], $collector->getData()['normalize'][0]['caller']); + } } class Serializer implements SerializerInterface, NormalizerInterface, DenormalizerInterface, EncoderInterface, DecoderInterface From bfa94e6c0b8342892707b3ef0ca9f9b6816f187e Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Wed, 18 Jun 2025 11:49:59 +0200 Subject: [PATCH 38/63] fix contracts directory name --- phpunit.xml.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 3ca8477a8ad01..584ee078b03eb 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -54,7 +54,7 @@ ./src/Symfony/Bridge/*/Tests ./src/Symfony/Component/*/Tests ./src/Symfony/Component/*/*/Tests - ./src/Symfony/Contract/*/Tests + ./src/Symfony/Contracts/*/Tests ./src/Symfony/Bundle/*/Tests ./src/Symfony/Bundle/*/Resources ./src/Symfony/Component/*/Resources From b982f6efcc1b68dac7215eda62c4b7d66312c2c8 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 18 Jun 2025 16:36:35 +0200 Subject: [PATCH 39/63] [DependencyInjection] Fix inlining when public services are involved --- .../Compiler/InlineServiceDefinitionsPass.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php b/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php index 884977fff3d1f..c87ee3e795797 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php @@ -73,6 +73,9 @@ public function process(ContainerBuilder $container) if (!$this->graph->hasNode($id)) { continue; } + if ($definition->isPublic()) { + $this->connectedIds[$id] = true; + } foreach ($this->graph->getNode($id)->getOutEdges() as $edge) { if (isset($notInlinedIds[$edge->getSourceNode()->getId()])) { $this->currentId = $id; @@ -189,17 +192,13 @@ private function isInlineableDefinition(string $id, Definition $definition): boo return true; } - if ($definition->isPublic()) { + if ($definition->isPublic() + || $this->currentId === $id + || !$this->graph->hasNode($id) + ) { return false; } - if (!$this->graph->hasNode($id)) { - return true; - } - - if ($this->currentId === $id) { - return false; - } $this->connectedIds[$id] = true; $srcIds = []; From f03696e9e278077e687cd7d765f6faa7894c76b4 Mon Sep 17 00:00:00 2001 From: Ruud Kamphuis Date: Thu, 19 Jun 2025 14:18:57 +0200 Subject: [PATCH 40/63] [Serializer] Add support for discriminator map in property normalizer Fixes #60214 Currently it's not possible to serialize an object using the PropertyNormalizer when a DiscriminatorMap attribute is used. It produces the following error: > Symfony\Component\Serializer\Exception\NotNormalizableValueException: Type property "type" not found > for the abstract object "Symfony\Component\Serializer\Tests\Fixtures\DummyMessageInterface". The ObjectNormalizer overrides the `getAllowedAttributes` from AbstractNormalizer and adds support for discriminators. But the PropertyNormalizer does not do this. Therefore it doesn't work. For now, we copy the logic from ObjectNormalizer to PropertyNormalizer and the problem goes away. --- .../Normalizer/AbstractObjectNormalizer.php | 25 ++++++++++++++++ .../Normalizer/ObjectNormalizer.php | 24 --------------- .../Tests/Fixtures/DummyMessageInterface.php | 1 + .../Tests/Fixtures/DummyMessageNumberFour.php | 29 +++++++++++++++++++ .../AbstractObjectNormalizerTest.php | 22 ++++++++++++++ 5 files changed, 77 insertions(+), 24 deletions(-) create mode 100644 src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageNumberFour.php diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php index b27b1985eb8ef..7422c849ddd80 100644 --- a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php @@ -25,6 +25,7 @@ use Symfony\Component\Serializer\Exception\LogicException; use Symfony\Component\Serializer\Exception\MissingConstructorArgumentsException; use Symfony\Component\Serializer\Exception\NotNormalizableValueException; +use Symfony\Component\Serializer\Mapping\AttributeMetadata; use Symfony\Component\Serializer\Mapping\AttributeMetadataInterface; use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata; use Symfony\Component\Serializer\Mapping\ClassDiscriminatorResolverInterface; @@ -765,6 +766,30 @@ protected function createChildContext(array $parentContext, string $attribute, ? return $context; } + protected function getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false): array|bool + { + if (false === $allowedAttributes = parent::getAllowedAttributes($classOrObject, $context, $attributesAsString)) { + return false; + } + + if (null !== $this->classDiscriminatorResolver) { + $class = \is_object($classOrObject) ? $classOrObject::class : $classOrObject; + if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForMappedObject($classOrObject)) { + $allowedAttributes[] = $attributesAsString ? $discriminatorMapping->getTypeProperty() : new AttributeMetadata($discriminatorMapping->getTypeProperty()); + } + + if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForClass($class)) { + $attributes = []; + foreach ($discriminatorMapping->getTypesMapping() as $mappedClass) { + $attributes[] = parent::getAllowedAttributes($mappedClass, $context, $attributesAsString); + } + $allowedAttributes = array_merge($allowedAttributes, ...$attributes); + } + } + + return $allowedAttributes; + } + /** * Builds the cache key for the attributes cache. * diff --git a/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php index e93d7b4cc5bc8..c06c19e241992 100644 --- a/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.php @@ -164,30 +164,6 @@ protected function setAttributeValue(object $object, string $attribute, mixed $v } } - protected function getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false): array|bool - { - if (false === $allowedAttributes = parent::getAllowedAttributes($classOrObject, $context, $attributesAsString)) { - return false; - } - - if (null !== $this->classDiscriminatorResolver) { - $class = \is_object($classOrObject) ? $classOrObject::class : $classOrObject; - if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForMappedObject($classOrObject)) { - $allowedAttributes[] = $attributesAsString ? $discriminatorMapping->getTypeProperty() : new AttributeMetadata($discriminatorMapping->getTypeProperty()); - } - - if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForClass($class)) { - $attributes = []; - foreach ($discriminatorMapping->getTypesMapping() as $mappedClass) { - $attributes[] = parent::getAllowedAttributes($mappedClass, $context, $attributesAsString); - } - $allowedAttributes = array_merge($allowedAttributes, ...$attributes); - } - } - - return $allowedAttributes; - } - protected function isAllowedAttribute($classOrObject, string $attribute, ?string $format = null, array $context = []) { if (!parent::isAllowedAttribute($classOrObject, $attribute, $format, $context)) { diff --git a/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageInterface.php b/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageInterface.php index 31206ea67d289..ea26589a2b072 100644 --- a/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageInterface.php +++ b/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageInterface.php @@ -20,6 +20,7 @@ 'one' => DummyMessageNumberOne::class, 'two' => DummyMessageNumberTwo::class, 'three' => DummyMessageNumberThree::class, + 'four' => DummyMessageNumberFour::class, ])] interface DummyMessageInterface { diff --git a/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageNumberFour.php b/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageNumberFour.php new file mode 100644 index 0000000000000..eaf87d48a7101 --- /dev/null +++ b/src/Symfony/Component/Serializer/Tests/Fixtures/DummyMessageNumberFour.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Serializer\Tests\Fixtures; + +use Symfony\Component\Serializer\Attribute\Ignore; + +abstract class SomeAbstract { + #[Ignore] + public function getDescription() + { + return 'Hello, World!'; + } +} + +class DummyMessageNumberFour extends SomeAbstract implements DummyMessageInterface +{ + public function __construct(public $one) + { + } +} diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php index 0cca05db3341f..c2349901fbdf4 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php @@ -42,6 +42,7 @@ use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; +use Symfony\Component\Serializer\Normalizer\PropertyNormalizer; use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\SerializerAwareInterface; use Symfony\Component\Serializer\SerializerInterface; @@ -49,6 +50,8 @@ use Symfony\Component\Serializer\Tests\Fixtures\Attributes\AbstractDummyFirstChild; use Symfony\Component\Serializer\Tests\Fixtures\Attributes\AbstractDummySecondChild; use Symfony\Component\Serializer\Tests\Fixtures\DummyFirstChildQuux; +use Symfony\Component\Serializer\Tests\Fixtures\DummyMessageInterface; +use Symfony\Component\Serializer\Tests\Fixtures\DummyMessageNumberFour; use Symfony\Component\Serializer\Tests\Fixtures\DummySecondChildQuux; use Symfony\Component\Serializer\Tests\Fixtures\DummyString; use Symfony\Component\Serializer\Tests\Fixtures\DummyWithNotNormalizable; @@ -1087,6 +1090,25 @@ public static function provideBooleanTypesData() [['foo' => false], TruePropertyDummy::class], ]; } + + public function testDeserializeAndSerializeConstructorAndIgnoreAndInterfacedObjectsWithTheClassMetadataDiscriminator() + { + $example = new DummyMessageNumberFour('Hello'); + + $classMetadataFactory = new ClassMetadataFactory(new AttributeLoader()); + + $normalizer = new PropertyNormalizer( + $classMetadataFactory, + null, + new PropertyInfoExtractor([], [new PhpDocExtractor(), new ReflectionExtractor()]), + new ClassDiscriminatorFromClassMetadata($classMetadataFactory), + ); + + $serialized = $normalizer->normalize($example, 'json'); + $deserialized = $normalizer->denormalize($serialized, DummyMessageInterface::class, 'json'); + + $this->assertEquals($example, $deserialized); + } } class AbstractObjectNormalizerDummy extends AbstractObjectNormalizer From 928240edafe1eaf43fa62c13f074132fd0556c7c Mon Sep 17 00:00:00 2001 From: Oskar Stark Date: Thu, 19 Jun 2025 09:58:42 +0200 Subject: [PATCH 41/63] [Validator] Remove comment to GitHub issue --- .../Component/Validator/Constraints/CollectionValidator.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Symfony/Component/Validator/Constraints/CollectionValidator.php b/src/Symfony/Component/Validator/Constraints/CollectionValidator.php index 7bb63e7dedff3..141b50fb32025 100644 --- a/src/Symfony/Component/Validator/Constraints/CollectionValidator.php +++ b/src/Symfony/Component/Validator/Constraints/CollectionValidator.php @@ -50,7 +50,6 @@ public function validate(mixed $value, Constraint $constraint) $context = $this->context; foreach ($constraint->fields as $field => $fieldConstraint) { - // bug fix issue #2779 $existsInArray = \is_array($value) && \array_key_exists($field, $value); $existsInArrayAccess = $value instanceof \ArrayAccess && $value->offsetExists($field); From 86a4445002e7ec78bbe3c95efb0fbca408720a5d Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 19 Jun 2025 22:08:08 +0200 Subject: [PATCH 42/63] [DependencyInjection] Fix generating adapters of functional interfaces --- .../DependencyInjection/Argument/LazyClosure.php | 12 ++++++------ .../DependencyInjection/ContainerBuilder.php | 5 +++-- .../DependencyInjection/Dumper/PhpDumper.php | 6 +++--- .../Tests/Argument/LazyClosureTest.php | 6 +++--- .../Tests/ContainerBuilderTest.php | 14 ++++++++++++++ .../Tests/Fixtures/includes/autowiring_classes.php | 5 +++++ 6 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/Symfony/Component/DependencyInjection/Argument/LazyClosure.php b/src/Symfony/Component/DependencyInjection/Argument/LazyClosure.php index 230363a95bf3a..45e1c9d56c58e 100644 --- a/src/Symfony/Component/DependencyInjection/Argument/LazyClosure.php +++ b/src/Symfony/Component/DependencyInjection/Argument/LazyClosure.php @@ -40,22 +40,22 @@ public function __get(mixed $name): mixed } if (isset($this->initializer)) { - $this->service = ($this->initializer)(); + if (\is_string($service = ($this->initializer)())) { + $service = (new \ReflectionClass($service))->newInstanceWithoutConstructor(); + } + $this->service = $service; unset($this->initializer); } return $this->service; } - public static function getCode(string $initializer, array $callable, Definition $definition, ContainerBuilder $container, ?string $id): string + public static function getCode(string $initializer, array $callable, string $class, ContainerBuilder $container, ?string $id): string { $method = $callable[1]; - $asClosure = 'Closure' === ($definition->getClass() ?: 'Closure'); - if ($asClosure) { + if ($asClosure = 'Closure' === $class) { $class = ($callable[0] instanceof Reference ? $container->findDefinition($callable[0]) : $callable[0])->getClass(); - } else { - $class = $definition->getClass(); } $r = $container->getReflectionClass($class); diff --git a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php index 2771defe45134..4dc7c4e231e2e 100644 --- a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php +++ b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php @@ -1060,14 +1060,15 @@ private function createService(Definition $definition, array &$inlineServices, b } if (\is_array($callable) && ( - $callable[0] instanceof Reference + 'Closure' !== $class + || $callable[0] instanceof Reference || $callable[0] instanceof Definition && !isset($inlineServices[spl_object_hash($callable[0])]) )) { $initializer = function () use ($callable, &$inlineServices) { return $this->doResolveServices($callable[0], $inlineServices); }; - $proxy = eval('return '.LazyClosure::getCode('$initializer', $callable, $definition, $this, $id).';'); + $proxy = eval('return '.LazyClosure::getCode('$initializer', $callable, $class, $this, $id).';'); $this->shareService($definition, $proxy, $id, $inlineServices); return $proxy; diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index bdb95691354ca..164dddf202077 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -1202,13 +1202,13 @@ private function addNewInstance(Definition $definition, string $return = '', ?st throw new RuntimeException(sprintf('Cannot dump definition because of invalid factory method (%s).', $callable[1] ?: 'n/a')); } - if (['...'] === $arguments && ($definition->isLazy() || 'Closure' !== ($definition->getClass() ?? 'Closure')) && ( + if (['...'] === $arguments && ('Closure' !== ($class = $definition->getClass() ?: 'Closure') || $definition->isLazy() && ( $callable[0] instanceof Reference || ($callable[0] instanceof Definition && !$this->definitionVariables->contains($callable[0])) - )) { + ))) { $initializer = 'fn () => '.$this->dumpValue($callable[0]); - return $return.LazyClosure::getCode($initializer, $callable, $definition, $this->container, $id).$tail; + return $return.LazyClosure::getCode($initializer, $callable, $class, $this->container, $id).$tail; } if ($callable[0] instanceof Reference diff --git a/src/Symfony/Component/DependencyInjection/Tests/Argument/LazyClosureTest.php b/src/Symfony/Component/DependencyInjection/Tests/Argument/LazyClosureTest.php index 46ef1591785cf..9652a86fd24b6 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Argument/LazyClosureTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Argument/LazyClosureTest.php @@ -34,7 +34,7 @@ public function testThrowsWhenNotUsingInterface() $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('Cannot create adapter for service "foo" because "Symfony\Component\DependencyInjection\Tests\Argument\LazyClosureTest" is not an interface.'); - LazyClosure::getCode('foo', [new \stdClass(), 'bar'], new Definition(LazyClosureTest::class), new ContainerBuilder(), 'foo'); + LazyClosure::getCode('foo', [new \stdClass(), 'bar'], LazyClosureTest::class, new ContainerBuilder(), 'foo'); } public function testThrowsOnNonFunctionalInterface() @@ -42,7 +42,7 @@ public function testThrowsOnNonFunctionalInterface() $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('Cannot create adapter for service "foo" because interface "Symfony\Component\DependencyInjection\Tests\Argument\NonFunctionalInterface" doesn\'t have exactly one method.'); - LazyClosure::getCode('foo', [new \stdClass(), 'bar'], new Definition(NonFunctionalInterface::class), new ContainerBuilder(), 'foo'); + LazyClosure::getCode('foo', [new \stdClass(), 'bar'], NonFunctionalInterface::class, new ContainerBuilder(), 'foo'); } public function testThrowsOnUnknownMethodInInterface() @@ -50,7 +50,7 @@ public function testThrowsOnUnknownMethodInInterface() $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('Cannot create lazy closure for service "bar" because its corresponding callable is invalid.'); - LazyClosure::getCode('bar', [new Definition(FunctionalInterface::class), 'bar'], new Definition(\Closure::class), new ContainerBuilder(), 'bar'); + LazyClosure::getCode('bar', [new Definition(FunctionalInterface::class), 'bar'], \Closure::class, new ContainerBuilder(), 'bar'); } } diff --git a/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php b/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php index 85693bec0b27c..f072a4ee82d83 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php @@ -49,6 +49,7 @@ use Symfony\Component\DependencyInjection\ServiceLocator; use Symfony\Component\DependencyInjection\Tests\Compiler\Foo; use Symfony\Component\DependencyInjection\Tests\Compiler\FooAnnotation; +use Symfony\Component\DependencyInjection\Tests\Compiler\MyCallable; use Symfony\Component\DependencyInjection\Tests\Compiler\SingleMethodInterface; use Symfony\Component\DependencyInjection\Tests\Compiler\Wither; use Symfony\Component\DependencyInjection\Tests\Fixtures\CaseSensitiveClass; @@ -522,6 +523,19 @@ public function testClosureProxy() $this->assertInstanceOf(Foo::class, $container->get('closure_proxy')->theMethod()); } + public function testClosureProxyWithStaticMethod() + { + $container = new ContainerBuilder(); + $container->register('closure_proxy', SingleMethodInterface::class) + ->setPublic('true') + ->setFactory(['Closure', 'fromCallable']) + ->setArguments([[MyCallable::class, 'theMethodImpl']]); + $container->compile(); + + $this->assertInstanceOf(SingleMethodInterface::class, $container->get('closure_proxy')); + $this->assertSame(124, $container->get('closure_proxy')->theMethod()); + } + public function testCreateServiceClass() { $builder = new ContainerBuilder(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php index a9ac5c0bff430..efbcc8d1986c1 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php @@ -582,4 +582,9 @@ class MyCallable public function __invoke(): void { } + + public static function theMethodImpl(): int + { + return 124; + } } From 0972774a2005c712e1df94d24acd746917cac789 Mon Sep 17 00:00:00 2001 From: Jesper Noordsij Date: Mon, 5 May 2025 12:48:24 +0200 Subject: [PATCH 43/63] [Mailer] [Transport] Send clone of `RawMessage` instance in `RoundRobinTransport` --- .../Transport/RoundRobinTransportTest.php | 23 +++++++++++++++++++ .../Mailer/Transport/RoundRobinTransport.php | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php b/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php index a1b2befcce846..cc5656e1e9a56 100644 --- a/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php +++ b/src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php @@ -16,6 +16,8 @@ use Symfony\Component\Mailer\Exception\TransportExceptionInterface; use Symfony\Component\Mailer\Transport\RoundRobinTransport; use Symfony\Component\Mailer\Transport\TransportInterface; +use Symfony\Component\Mime\Header\Headers; +use Symfony\Component\Mime\Message; use Symfony\Component\Mime\RawMessage; /** @@ -143,6 +145,27 @@ public function testSendOneDeadAndRecoveryWithinRetryPeriod() $this->assertTransports($t, 1, []); } + public function testSendOneDeadMessageAlterationsDoNotPersist() + { + $t1 = $this->createMock(TransportInterface::class); + $t1->expects($this->once())->method('send') + ->willReturnCallback(function (Message $message) { + $message->getHeaders()->addTextHeader('X-Transport-1', 'value'); + throw new TransportException(); + }); + $t2 = $this->createMock(TransportInterface::class); + $t2->expects($this->once())->method('send'); + $t = new RoundRobinTransport([$t1, $t2]); + $p = new \ReflectionProperty($t, 'cursor'); + $p->setValue($t, 0); + $headers = new Headers(); + $headers->addTextHeader('X-Shared', 'value'); + $message = new Message($headers); + $t->send($message); + $this->assertSame($message->getHeaders()->get('X-Shared')->getBody(), 'value'); + $this->assertFalse($message->getHeaders()->has('X-Transport-1')); + } + public function testFailureDebugInformation() { $t1 = $this->createMock(TransportInterface::class); diff --git a/src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php b/src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php index ac9709bf7b6c4..a88662d623ef9 100644 --- a/src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php +++ b/src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php @@ -52,7 +52,7 @@ public function send(RawMessage $message, ?Envelope $envelope = null): ?SentMess while ($transport = $this->getNextTransport()) { try { - return $transport->send($message, $envelope); + return $transport->send(clone $message, $envelope); } catch (TransportExceptionInterface $e) { $exception ??= new TransportException('All transports failed.'); $exception->appendDebug(sprintf("Transport \"%s\": %s\n", $transport, $e->getDebug())); From 4b6be4aa9c83adc34ff9986513fe45d41fe639bf Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 20 Jun 2025 14:48:30 +0200 Subject: [PATCH 44/63] remove useless @legacy annotation --- .../Mailgun/Tests/Transport/MailgunApiTransportTest.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php b/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php index 4e4ab66140447..08879782a0bc3 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php @@ -98,14 +98,8 @@ public function testCustomHeader() $this->assertEquals('amp-html-value', $payload['amp-html']); } - /** - * @legacy - */ public function testPrefixHeaderWithH() { - $json = json_encode(['foo' => 'bar']); - $deliveryTime = (new \DateTimeImmutable('2020-03-20 13:01:00'))->format(\DateTimeInterface::RFC2822); - $email = new Email(); $email->getHeaders()->addTextHeader('h:bar', 'bar-value'); From 06fa6c1d889c823766ac584d0e6ebf5627406275 Mon Sep 17 00:00:00 2001 From: Grummfy Date: Fri, 20 Jun 2025 22:02:07 +0200 Subject: [PATCH 45/63] fix: twigphp/Twig/issues/4647 --- src/Symfony/Bundle/TwigBundle/Resources/config/twig.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.php b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.php index 69d0aa2f03498..dc3944a649a9c 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.php +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.php @@ -44,6 +44,7 @@ use Twig\Extension\OptimizerExtension; use Twig\Extension\StagingExtension; use Twig\ExtensionSet; +use Twig\ExpressionParser\Infix\BinaryOperatorExpressionParser; use Twig\Loader\ChainLoader; use Twig\Loader\FilesystemLoader; use Twig\Profiler\Profile; @@ -63,6 +64,7 @@ ->tag('container.preload', ['class' => EscaperExtension::class]) ->tag('container.preload', ['class' => OptimizerExtension::class]) ->tag('container.preload', ['class' => StagingExtension::class]) + ->tag('container.preload', ['class' => BinaryOperatorExpressionParser::class]) ->tag('container.preload', ['class' => ExtensionSet::class]) ->tag('container.preload', ['class' => Template::class]) ->tag('container.preload', ['class' => TemplateWrapper::class]) From b727f9f4b01f66ffb978fea061f74fc34393c6d8 Mon Sep 17 00:00:00 2001 From: Santiago San Martin Date: Fri, 20 Jun 2025 18:32:32 -0300 Subject: [PATCH 46/63] Remove unused and non-existent Factory attribute use --- .../Tests/Fixtures/StaticConstructorAutoconfigure.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/StaticConstructorAutoconfigure.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/StaticConstructorAutoconfigure.php index 3d42a8c770952..09479fe55d2ae 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/StaticConstructorAutoconfigure.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/StaticConstructorAutoconfigure.php @@ -12,7 +12,6 @@ namespace Symfony\Component\DependencyInjection\Tests\Fixtures; use Symfony\Component\DependencyInjection\Attribute\Autoconfigure; -use Symfony\Component\DependencyInjection\Attribute\Factory; #[Autoconfigure(bind: ['$foo' => 'foo'], constructor: 'create')] class StaticConstructorAutoconfigure From 24551218e7db5b59dde18add49f345811ccc0926 Mon Sep 17 00:00:00 2001 From: MatTheCat Date: Mon, 23 Jun 2025 22:18:57 +0200 Subject: [PATCH 47/63] [Security] Document `FirewallListenerInterface` as a firewall listener type --- .../Bundle/SecurityBundle/Security/FirewallContext.php | 5 +++-- src/Symfony/Component/Security/Http/FirewallMap.php | 5 +++-- src/Symfony/Component/Security/Http/FirewallMapInterface.php | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php b/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php index a9bd4ccda2e07..ee56b6df42df7 100644 --- a/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php +++ b/src/Symfony/Bundle/SecurityBundle/Security/FirewallContext.php @@ -12,6 +12,7 @@ namespace Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\Security\Http\Firewall\ExceptionListener; +use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface; use Symfony\Component\Security\Http\Firewall\LogoutListener; /** @@ -28,7 +29,7 @@ class FirewallContext private ?FirewallConfig $config; /** - * @param iterable $listeners + * @param iterable $listeners */ public function __construct(iterable $listeners, ?ExceptionListener $exceptionListener = null, ?LogoutListener $logoutListener = null, ?FirewallConfig $config = null) { @@ -47,7 +48,7 @@ public function getConfig() } /** - * @return iterable + * @return iterable */ public function getListeners(): iterable { diff --git a/src/Symfony/Component/Security/Http/FirewallMap.php b/src/Symfony/Component/Security/Http/FirewallMap.php index 47edd317b343d..d854540a58ba5 100644 --- a/src/Symfony/Component/Security/Http/FirewallMap.php +++ b/src/Symfony/Component/Security/Http/FirewallMap.php @@ -14,6 +14,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestMatcherInterface; use Symfony\Component\Security\Http\Firewall\ExceptionListener; +use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface; use Symfony\Component\Security\Http\Firewall\LogoutListener; /** @@ -25,12 +26,12 @@ class FirewallMap implements FirewallMapInterface { /** - * @var list, ExceptionListener|null, LogoutListener|null}> + * @var list, ExceptionListener|null, LogoutListener|null}> */ private array $map = []; /** - * @param list $listeners + * @param list $listeners * * @return void */ diff --git a/src/Symfony/Component/Security/Http/FirewallMapInterface.php b/src/Symfony/Component/Security/Http/FirewallMapInterface.php index 480ea8ad6b4f1..cfcaa19c07cec 100644 --- a/src/Symfony/Component/Security/Http/FirewallMapInterface.php +++ b/src/Symfony/Component/Security/Http/FirewallMapInterface.php @@ -13,6 +13,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Http\Firewall\ExceptionListener; +use Symfony\Component\Security\Http\Firewall\FirewallListenerInterface; use Symfony\Component\Security\Http\Firewall\LogoutListener; /** @@ -35,7 +36,7 @@ interface FirewallMapInterface * If there is no logout listener, the third element of the outer array * must be null. * - * @return array{iterable, ExceptionListener, LogoutListener} + * @return array{iterable, ExceptionListener, LogoutListener} */ public function getListeners(Request $request); } From 17b2a189887d2defdc528a6ca7ff86edbbc1854e Mon Sep 17 00:00:00 2001 From: Paul Ferrett Date: Tue, 24 Jun 2025 15:09:08 +0800 Subject: [PATCH 48/63] [Notifier] Update fake SMS transports to use contracts event dispatcher. Update FakeSmsLoggerTransport and FakeSmsEmailTransport to depend on Symfony\Contracts\EventDispatcher\EventDispatcherInterface instead of Symfony\Component\EventDispatcher\EventDispatcherInterface. This ensures compatibility with internal projects with decorated dispatchers. --- .../Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php | 2 +- .../Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php b/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php index e83e57a006011..fda47b38b1c89 100644 --- a/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php +++ b/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php @@ -11,7 +11,6 @@ namespace Symfony\Component\Notifier\Bridge\FakeSms; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\Mailer\Exception\TransportExceptionInterface; use Symfony\Component\Mailer\MailerInterface; use Symfony\Component\Mime\Email; @@ -20,6 +19,7 @@ use Symfony\Component\Notifier\Message\SentMessage; use Symfony\Component\Notifier\Message\SmsMessage; use Symfony\Component\Notifier\Transport\AbstractTransport; +use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; /** diff --git a/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php b/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php index 3747c66ee7012..c5fe80a2cf70b 100644 --- a/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php +++ b/src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php @@ -12,12 +12,12 @@ namespace Symfony\Component\Notifier\Bridge\FakeSms; use Psr\Log\LoggerInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\Notifier\Exception\UnsupportedMessageTypeException; use Symfony\Component\Notifier\Message\MessageInterface; use Symfony\Component\Notifier\Message\SentMessage; use Symfony\Component\Notifier\Message\SmsMessage; use Symfony\Component\Notifier\Transport\AbstractTransport; +use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; /** From 40bd9ab0d6c7ce1955613227df26f107af227dc3 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Mon, 23 Jun 2025 08:46:12 +0200 Subject: [PATCH 49/63] Update GitHub PR template --- .github/PULL_REQUEST_TEMPLATE.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index d4dafb2aa0029..557eda9c29893 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,22 +1,25 @@ | Q | A | ------------- | --- -| Branch? | 7.4 for features / 6.4, 7.2, or 7.3 for bug fixes +| Branch? | 7.4 for features / 6.4, 7.2, or 7.3 for bug fixes | Bug fix? | yes/no -| New feature? | yes/no -| Deprecations? | yes/no -| Issues | Fix #... +| New feature? | yes/no +| Deprecations? | yes/no +| Issues | Fix #... | License | MIT From fd5b24b95aa46d879616e73abff45f58afd7577d Mon Sep 17 00:00:00 2001 From: Raphael Davaillaud Date: Tue, 24 Jun 2025 12:11:17 +0200 Subject: [PATCH 50/63] [Intl] Fix locale validator when canonicalize is true When canonicalize is set to true, and the value length exceeds INTL_MAX_LOCALE_LEN the validator throws an exception. The Intl Locale::canonicalize() method returns null when the value is too long and Locales::exists() only accept non null string. This commit allows to handle the null value as it should. [Intl] windows / php 8.1 INTL_MAX_LOCALE_LEN --- .../Validator/Constraints/LocaleValidator.php | 2 +- .../Tests/Constraints/LocaleValidatorTest.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/Constraints/LocaleValidator.php b/src/Symfony/Component/Validator/Constraints/LocaleValidator.php index 4cd0b120b4f67..11045ca95f60e 100644 --- a/src/Symfony/Component/Validator/Constraints/LocaleValidator.php +++ b/src/Symfony/Component/Validator/Constraints/LocaleValidator.php @@ -47,7 +47,7 @@ public function validate(mixed $value, Constraint $constraint) $value = \Locale::canonicalize($value); } - if (!Locales::exists($value)) { + if (null === $value || !Locales::exists($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($inputValue)) ->setCode(Locale::NO_SUCH_LOCALE_ERROR) diff --git a/src/Symfony/Component/Validator/Tests/Constraints/LocaleValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/LocaleValidatorTest.php index 4eec91c63d683..fe3594eb47740 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/LocaleValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/LocaleValidatorTest.php @@ -91,6 +91,21 @@ public static function getInvalidLocales() ]; } + public function testTooLongLocale() + { + $constraint = new Locale([ + 'message' => 'myMessage', + ]); + + $locale = str_repeat('a', (\defined('INTL_MAX_LOCALE_LEN') ? \INTL_MAX_LOCALE_LEN : 85) + 1); + $this->validator->validate($locale, $constraint); + + $this->buildViolation('myMessage') + ->setParameter('{{ value }}', '"' . $locale . '"') + ->setCode(Locale::NO_SUCH_LOCALE_ERROR) + ->assertRaised(); + } + /** * @dataProvider getUncanonicalizedLocales */ From 125f4ad8e7691f66edd0fd4632ab08dbdc61d579 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 26 Jun 2025 10:06:12 +0200 Subject: [PATCH 51/63] [Uid] Improve entropy of the increment for UUIDv7 --- src/Symfony/Component/Uid/UuidV7.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Uid/UuidV7.php b/src/Symfony/Component/Uid/UuidV7.php index 43740b67e08dc..f52897d6e4012 100644 --- a/src/Symfony/Component/Uid/UuidV7.php +++ b/src/Symfony/Component/Uid/UuidV7.php @@ -60,7 +60,7 @@ public static function generate(?\DateTimeInterface $time = null): string if ($time > self::$time || (null !== $mtime && $time !== self::$time)) { randomize: - self::$rand = unpack('n*', isset(self::$seed) ? random_bytes(10) : self::$seed = random_bytes(16)); + self::$rand = unpack('S*', isset(self::$seed) ? random_bytes(10) : self::$seed = random_bytes(16)); self::$rand[1] &= 0x03FF; self::$time = $time; } else { @@ -76,7 +76,7 @@ public static function generate(?\DateTimeInterface $time = null): string // 24-bit number in the self::$seedParts list and decrement self::$seedIndex. if (!self::$seedIndex) { - $s = unpack('l*', self::$seed = hash('sha512', self::$seed, true)); + $s = unpack(\PHP_INT_SIZE >= 8 ? 'L*' : 'l*', self::$seed = hash('sha512', self::$seed, true)); $s[] = ($s[1] >> 8 & 0xFF0000) | ($s[2] >> 16 & 0xFF00) | ($s[3] >> 24 & 0xFF); $s[] = ($s[4] >> 8 & 0xFF0000) | ($s[5] >> 16 & 0xFF00) | ($s[6] >> 24 & 0xFF); $s[] = ($s[7] >> 8 & 0xFF0000) | ($s[8] >> 16 & 0xFF00) | ($s[9] >> 24 & 0xFF); From 1256ce922eb1daf5889bdd1a4688e18058173500 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 26 Jun 2025 13:37:48 +0200 Subject: [PATCH 52/63] use native lazy objects on PHP 8.4+ when available --- src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php | 8 +++++--- .../Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php | 6 +++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php b/src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php index 576011f4226b3..9d1a01e7ecd04 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php +++ b/src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php @@ -58,9 +58,11 @@ public static function createTestConfiguration(): Configuration { $config = ORMSetup::createConfiguration(true); $config->setEntityNamespaces(['SymfonyTestsDoctrine' => 'Symfony\Bridge\Doctrine\Tests\Fixtures']); - $config->setAutoGenerateProxyClasses(true); - $config->setProxyDir(sys_get_temp_dir()); - $config->setProxyNamespace('SymfonyTests\Doctrine'); + if (\PHP_VERSION_ID < 80400 || !method_exists($config, 'enableNativeLazyObjects')) { + $config->setAutoGenerateProxyClasses(true); + $config->setProxyDir(sys_get_temp_dir()); + $config->setProxyNamespace('SymfonyTests\Doctrine'); + } $config->setMetadataDriverImpl(new AttributeDriver([__DIR__.'/../Tests/Fixtures' => 'Symfony\Bridge\Doctrine\Tests\Fixtures'], true)); if (class_exists(DefaultSchemaManagerFactory::class)) { $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory()); diff --git a/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php b/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php index 81bd3e6235b29..a6ae9886b38fd 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php @@ -45,7 +45,11 @@ private function createExtractor(): DoctrineExtractor $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory()); } if (!class_exists(\Doctrine\Persistence\Mapping\Driver\AnnotationDriver::class)) { // doctrine/persistence >= 3.0 - $config->setLazyGhostObjectEnabled(true); + if (\PHP_VERSION_ID >= 80400 && method_exists($config, 'enableNativeLazyObjects')) { + $config->enableNativeLazyObjects(true); + } else { + $config->setLazyGhostObjectEnabled(true); + } } $eventManager = new EventManager(); From dde6dfab6a657894845000e4be995d3163d5fc05 Mon Sep 17 00:00:00 2001 From: Gregor Harlan Date: Thu, 26 Jun 2025 22:46:07 +0200 Subject: [PATCH 53/63] Fix command option mode (InputOption::VALUE_REQUIRED) --- .../FrameworkBundle/Command/TranslationDebugCommand.php | 2 +- .../FrameworkBundle/Command/TranslationUpdateCommand.php | 8 ++++---- .../Component/Mailer/Command/MailerTestCommand.php | 8 ++++---- .../Messenger/Command/FailedMessagesRemoveCommand.php | 2 +- .../Messenger/Command/FailedMessagesRetryCommand.php | 2 +- .../Messenger/Command/FailedMessagesShowCommand.php | 2 +- .../Translation/Command/TranslationPullCommand.php | 8 ++++---- .../Translation/Command/TranslationPushCommand.php | 4 ++-- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php index ecb0ad8d7080f..53ee1949f8dc1 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php @@ -79,7 +79,7 @@ protected function configure(): void ->setDefinition([ new InputArgument('locale', InputArgument::REQUIRED, 'The locale'), new InputArgument('bundle', InputArgument::OPTIONAL, 'The bundle name or directory where to load the messages'), - new InputOption('domain', null, InputOption::VALUE_OPTIONAL, 'The messages domain'), + new InputOption('domain', null, InputOption::VALUE_REQUIRED, 'The messages domain'), new InputOption('only-missing', null, InputOption::VALUE_NONE, 'Display only missing messages'), new InputOption('only-unused', null, InputOption::VALUE_NONE, 'Display only unused messages'), new InputOption('all', null, InputOption::VALUE_NONE, 'Load messages from all registered bundles'), diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php index f8ce99c41f8b0..259027ce0f7dd 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php @@ -84,14 +84,14 @@ protected function configure(): void ->setDefinition([ new InputArgument('locale', InputArgument::REQUIRED, 'The locale'), new InputArgument('bundle', InputArgument::OPTIONAL, 'The bundle name or directory where to load the messages'), - new InputOption('prefix', null, InputOption::VALUE_OPTIONAL, 'Override the default prefix', '__'), - new InputOption('format', null, InputOption::VALUE_OPTIONAL, 'Override the default output format', 'xlf12'), + new InputOption('prefix', null, InputOption::VALUE_REQUIRED, 'Override the default prefix', '__'), + new InputOption('format', null, InputOption::VALUE_REQUIRED, 'Override the default output format', 'xlf12'), new InputOption('dump-messages', null, InputOption::VALUE_NONE, 'Should the messages be dumped in the console'), new InputOption('force', null, InputOption::VALUE_NONE, 'Should the extract be done'), new InputOption('clean', null, InputOption::VALUE_NONE, 'Should clean not found messages'), - new InputOption('domain', null, InputOption::VALUE_OPTIONAL, 'Specify the domain to extract'), + new InputOption('domain', null, InputOption::VALUE_REQUIRED, 'Specify the domain to extract'), new InputOption('sort', null, InputOption::VALUE_OPTIONAL, 'Return list of messages sorted alphabetically (only works with --dump-messages)', 'asc'), - new InputOption('as-tree', null, InputOption::VALUE_OPTIONAL, 'Dump the messages as a tree-like structure: The given value defines the level where to switch to inline YAML'), + new InputOption('as-tree', null, InputOption::VALUE_REQUIRED, 'Dump the messages as a tree-like structure: The given value defines the level where to switch to inline YAML'), ]) ->setHelp(<<<'EOF' The %command.name% command extracts translation strings from templates diff --git a/src/Symfony/Component/Mailer/Command/MailerTestCommand.php b/src/Symfony/Component/Mailer/Command/MailerTestCommand.php index 6cde762f5ed8c..8e00f629877c7 100644 --- a/src/Symfony/Component/Mailer/Command/MailerTestCommand.php +++ b/src/Symfony/Component/Mailer/Command/MailerTestCommand.php @@ -35,10 +35,10 @@ protected function configure(): void { $this ->addArgument('to', InputArgument::REQUIRED, 'The recipient of the message') - ->addOption('from', null, InputOption::VALUE_OPTIONAL, 'The sender of the message', 'from@example.org') - ->addOption('subject', null, InputOption::VALUE_OPTIONAL, 'The subject of the message', 'Testing transport') - ->addOption('body', null, InputOption::VALUE_OPTIONAL, 'The body of the message', 'Testing body') - ->addOption('transport', null, InputOption::VALUE_OPTIONAL, 'The transport to be used') + ->addOption('from', null, InputOption::VALUE_REQUIRED, 'The sender of the message', 'from@example.org') + ->addOption('subject', null, InputOption::VALUE_REQUIRED, 'The subject of the message', 'Testing transport') + ->addOption('body', null, InputOption::VALUE_REQUIRED, 'The body of the message', 'Testing body') + ->addOption('transport', null, InputOption::VALUE_REQUIRED, 'The transport to be used') ->setHelp(<<<'EOF' The %command.name% command tests a Mailer transport by sending a simple email message: diff --git a/src/Symfony/Component/Messenger/Command/FailedMessagesRemoveCommand.php b/src/Symfony/Component/Messenger/Command/FailedMessagesRemoveCommand.php index 09d8e898b8988..d21e2614b2600 100644 --- a/src/Symfony/Component/Messenger/Command/FailedMessagesRemoveCommand.php +++ b/src/Symfony/Component/Messenger/Command/FailedMessagesRemoveCommand.php @@ -35,7 +35,7 @@ protected function configure(): void new InputArgument('id', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'Specific message id(s) to remove'), new InputOption('all', null, InputOption::VALUE_NONE, 'Remove all failed messages from the transport'), new InputOption('force', null, InputOption::VALUE_NONE, 'Force the operation without confirmation'), - new InputOption('transport', null, InputOption::VALUE_OPTIONAL, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION), + new InputOption('transport', null, InputOption::VALUE_REQUIRED, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION), new InputOption('show-messages', null, InputOption::VALUE_NONE, 'Display messages before removing it (if multiple ids are given)'), ]) ->setHelp(<<<'EOF' diff --git a/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php b/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php index 677743c99e446..c7082419c38a7 100644 --- a/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php +++ b/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php @@ -63,7 +63,7 @@ protected function configure(): void ->setDefinition([ new InputArgument('id', InputArgument::IS_ARRAY, 'Specific message id(s) to retry'), new InputOption('force', null, InputOption::VALUE_NONE, 'Force action without confirmation'), - new InputOption('transport', null, InputOption::VALUE_OPTIONAL, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION), + new InputOption('transport', null, InputOption::VALUE_REQUIRED, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION), ]) ->setHelp(<<<'EOF' The %command.name% retries message in the failure transport. diff --git a/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php b/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php index 25fb9a8de0fbf..36369961e139b 100644 --- a/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php +++ b/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php @@ -35,7 +35,7 @@ protected function configure(): void ->setDefinition([ new InputArgument('id', InputArgument::OPTIONAL, 'Specific message id to show'), new InputOption('max', null, InputOption::VALUE_REQUIRED, 'Maximum number of messages to list', 50), - new InputOption('transport', null, InputOption::VALUE_OPTIONAL, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION), + new InputOption('transport', null, InputOption::VALUE_REQUIRED, 'Use a specific failure transport', self::DEFAULT_TRANSPORT_OPTION), new InputOption('stats', null, InputOption::VALUE_NONE, 'Display the message count by class'), new InputOption('class-filter', null, InputOption::VALUE_REQUIRED, 'Filter by a specific class name'), ]) diff --git a/src/Symfony/Component/Translation/Command/TranslationPullCommand.php b/src/Symfony/Component/Translation/Command/TranslationPullCommand.php index 5d9c092c389d2..2e0d6bc5e0622 100644 --- a/src/Symfony/Component/Translation/Command/TranslationPullCommand.php +++ b/src/Symfony/Component/Translation/Command/TranslationPullCommand.php @@ -92,10 +92,10 @@ protected function configure(): void new InputArgument('provider', null !== $defaultProvider ? InputArgument::OPTIONAL : InputArgument::REQUIRED, 'The provider to pull translations from.', $defaultProvider), new InputOption('force', null, InputOption::VALUE_NONE, 'Override existing translations with provider ones (it will delete not synchronized messages).'), new InputOption('intl-icu', null, InputOption::VALUE_NONE, 'Associated to --force option, it will write messages in "%domain%+intl-icu.%locale%.xlf" files.'), - new InputOption('domains', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the domains to pull.'), - new InputOption('locales', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the locales to pull.'), - new InputOption('format', null, InputOption::VALUE_OPTIONAL, 'Override the default output format.', 'xlf12'), - new InputOption('as-tree', null, InputOption::VALUE_OPTIONAL, 'Write messages as a tree-like structure. Needs --format=yaml. The given value defines the level where to switch to inline YAML'), + new InputOption('domains', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Specify the domains to pull.'), + new InputOption('locales', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Specify the locales to pull.'), + new InputOption('format', null, InputOption::VALUE_REQUIRED, 'Override the default output format.', 'xlf12'), + new InputOption('as-tree', null, InputOption::VALUE_REQUIRED, 'Write messages as a tree-like structure. Needs --format=yaml. The given value defines the level where to switch to inline YAML'), ]) ->setHelp(<<<'EOF' The %command.name% command pulls translations from the given provider. Only diff --git a/src/Symfony/Component/Translation/Command/TranslationPushCommand.php b/src/Symfony/Component/Translation/Command/TranslationPushCommand.php index 1d04adbc9d15e..0fbd2ff343725 100644 --- a/src/Symfony/Component/Translation/Command/TranslationPushCommand.php +++ b/src/Symfony/Component/Translation/Command/TranslationPushCommand.php @@ -83,8 +83,8 @@ protected function configure(): void new InputArgument('provider', null !== $defaultProvider ? InputArgument::OPTIONAL : InputArgument::REQUIRED, 'The provider to push translations to.', $defaultProvider), new InputOption('force', null, InputOption::VALUE_NONE, 'Override existing translations with local ones (it will delete not synchronized messages).'), new InputOption('delete-missing', null, InputOption::VALUE_NONE, 'Delete translations available on provider but not locally.'), - new InputOption('domains', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the domains to push.'), - new InputOption('locales', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the locales to push.', $this->enabledLocales), + new InputOption('domains', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Specify the domains to push.'), + new InputOption('locales', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Specify the locales to push.', $this->enabledLocales), ]) ->setHelp(<<<'EOF' The %command.name% command pushes translations to the given provider. Only new From 5bcb1d10cd23653b702e35c30596d350d2acb058 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 27 Jun 2025 11:35:47 +0200 Subject: [PATCH 54/63] fix conflicting xargs options --- .github/workflows/unit-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index c58f9aae078d0..4ca6a4d930eea 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -212,7 +212,7 @@ jobs: export SYMFONY_REQUIRE=">=$SYMFONY_VERSION" git fetch --depth=2 origin $SYMFONY_VERSION git checkout -m FETCH_HEAD - PATCHED_COMPONENTS=$(echo "$PATCHED_COMPONENTS" | xargs dirname | xargs -n1 -I{} bash -c "[ -e '{}/phpunit.xml.dist' ] && echo '{}'" | sort || true) + PATCHED_COMPONENTS=$(echo "$PATCHED_COMPONENTS" | xargs dirname | xargs -I{} bash -c "[ -e '{}/phpunit.xml.dist' ] && echo '{}'" | sort || true) if [[ $PATCHED_COMPONENTS ]]; then echo "::group::install phpunit" ./phpunit install From e7dc94d603c9c04a35992648843a523bfbfe5668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Vr=C3=A1na?= Date: Fri, 27 Jun 2025 15:30:21 +0200 Subject: [PATCH 55/63] [VarDumper] Avoid deprecated call in PgSqlCaster --- src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php b/src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php index 0d8b3d919b009..60497d923da0e 100644 --- a/src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php +++ b/src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php @@ -14,7 +14,7 @@ use Symfony\Component\VarDumper\Cloner\Stub; /** - * Casts pqsql resources to array representation. + * Casts pgsql resources to array representation. * * @author Nicolas Grekas * @@ -142,9 +142,9 @@ public static function castResult($result, array $a, Stub $stub, bool $isNested) 'name' => pg_field_name($result, $i), 'table' => sprintf('%s (OID: %s)', pg_field_table($result, $i), pg_field_table($result, $i, true)), 'type' => sprintf('%s (OID: %s)', pg_field_type($result, $i), pg_field_type_oid($result, $i)), - 'nullable' => (bool) pg_field_is_null($result, $i), + 'nullable' => (bool) (\PHP_VERSION_ID >= 80300 ? pg_field_is_null($result, null, $i) : pg_field_is_null($result, $i)), 'storage' => pg_field_size($result, $i).' bytes', - 'display' => pg_field_prtlen($result, $i).' chars', + 'display' => (\PHP_VERSION_ID >= 80300 ? pg_field_prtlen($result, null, $i) : pg_field_prtlen($result, $i)).' chars', ]; if (' (OID: )' === $field['table']) { $field['table'] = null; From d4a71ee690e32620b990437775c868dae9e659a5 Mon Sep 17 00:00:00 2001 From: Danil Date: Tue, 13 May 2025 23:21:56 +1000 Subject: [PATCH 56/63] [Serializer] Fix collect_denormalization_errors flag in defaultContext --- .../Component/Serializer/Serializer.php | 2 +- .../Serializer/Tests/SerializerTest.php | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Serializer/Serializer.php b/src/Symfony/Component/Serializer/Serializer.php index e17042097fe3c..9d0c45a6b0c44 100644 --- a/src/Symfony/Component/Serializer/Serializer.php +++ b/src/Symfony/Component/Serializer/Serializer.php @@ -222,7 +222,7 @@ public function denormalize(mixed $data, string $type, ?string $format = null, a throw new NotNormalizableValueException(sprintf('Could not denormalize object of type "%s", no supporting normalizer found.', $type)); } - if (isset($context[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS]) || isset($this->defaultContext[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS])) { + if ((isset($context[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS]) || isset($this->defaultContext[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS])) && !isset($context['not_normalizable_value_exceptions'])) { unset($context[DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS]); $context['not_normalizable_value_exceptions'] = []; $errors = &$context['not_normalizable_value_exceptions']; diff --git a/src/Symfony/Component/Serializer/Tests/SerializerTest.php b/src/Symfony/Component/Serializer/Tests/SerializerTest.php index da5ccc15e4397..b0dc887cea40e 100644 --- a/src/Symfony/Component/Serializer/Tests/SerializerTest.php +++ b/src/Symfony/Component/Serializer/Tests/SerializerTest.php @@ -1677,6 +1677,54 @@ public function testCollectDenormalizationErrorsDefaultContext() $serializer->denormalize($data, DummyWithVariadicParameter::class); } + + public function testDenormalizationFailsWithMultipleErrorsInDefaultContext() + { + $serializer = new Serializer( + [new DateTimeNormalizer(), new ObjectNormalizer()], + [], + [DenormalizerInterface::COLLECT_DENORMALIZATION_ERRORS => true] + ); + + $data = ['date' => '', 'unknown' => null]; + + try { + $serializer->denormalize($data, DummyEntityWithStringAndDateTime::class); + $this->fail('Expected PartialDenormalizationException was not thrown'); + } catch (PartialDenormalizationException $e) { + $this->assertIsArray($e->getErrors()); + $this->assertCount(2, $e->getErrors(), 'Expected two denormalization errors'); + + $exceptionsAsArray = array_map(function (NotNormalizableValueException $ex): array { + return [ + 'currentType' => $ex->getCurrentType(), + 'expectedTypes' => $ex->getExpectedTypes(), + 'path' => $ex->getPath(), + 'useMessageForUser' => $ex->canUseMessageForUser(), + 'message' => $ex->getMessage(), + ]; + }, $e->getErrors()); + + $expected = [ + [ + 'currentType' => 'null', + 'expectedTypes' => ['string'], + 'path' => 'bar', + 'useMessageForUser' => true, + 'message' => 'Failed to create object because the class misses the "bar" property.', + ], + [ + 'currentType' => 'string', + 'expectedTypes' => ['string'], + 'path' => 'date', + 'useMessageForUser' => true, + 'message' => 'The data is either not an string, an empty string, or null; you should pass a string that can be parsed with the passed format or a valid DateTime string.', + ], + ]; + + $this->assertSame($expected, $exceptionsAsArray); + } + } } class Model @@ -1743,6 +1791,15 @@ public function __construct($value) } } +class DummyEntityWithStringAndDateTime +{ + public function __construct( + public string $bar, + public \DateTimeInterface $date, + ) { + } +} + class DummyUnionType { /** From b24e3cd21ebe36cd1dc43e04b1fc77c16dc1734a Mon Sep 17 00:00:00 2001 From: Indra Gunawan Date: Fri, 30 May 2025 15:52:26 +0800 Subject: [PATCH 57/63] [Cache] Fix using a `ChainAdapter` as an adapter for a pool --- .../Component/Cache/DependencyInjection/CachePoolPass.php | 4 +++- .../Cache/Tests/DependencyInjection/CachePoolPassTest.php | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php b/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php index 90c089074ef4b..80b8a94c98152 100644 --- a/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php +++ b/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php @@ -58,9 +58,11 @@ public function process(ContainerBuilder $container) continue; } $class = $adapter->getClass(); + $providers = $adapter->getArguments(); while ($adapter instanceof ChildDefinition) { $adapter = $container->findDefinition($adapter->getParent()); $class = $class ?: $adapter->getClass(); + $providers += $adapter->getArguments(); if ($t = $adapter->getTag('cache.pool')) { $tags[0] += $t[0]; } @@ -90,7 +92,7 @@ public function process(ContainerBuilder $container) if (ChainAdapter::class === $class) { $adapters = []; - foreach ($adapter->getArgument(0) as $provider => $adapter) { + foreach ($providers['index_0'] ?? $providers[0] as $provider => $adapter) { if ($adapter instanceof ChildDefinition) { $chainedPool = $adapter; } else { diff --git a/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php b/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php index eaf5929559ca6..a50792f67ad3a 100644 --- a/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php +++ b/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php @@ -209,7 +209,8 @@ public function testChainAdapterPool() $container->register('cache.adapter.apcu', ApcuAdapter::class) ->setArguments([null, 0, null]) ->addTag('cache.pool'); - $container->register('cache.chain', ChainAdapter::class) + $container->register('cache.adapter.chain', ChainAdapter::class); + $container->setDefinition('cache.chain', new ChildDefinition('cache.adapter.chain')) ->addArgument(['cache.adapter.array', 'cache.adapter.apcu']) ->addTag('cache.pool'); $container->setDefinition('cache.app', new ChildDefinition('cache.chain')) @@ -224,7 +225,7 @@ public function testChainAdapterPool() $this->assertSame('cache.chain', $appCachePool->getParent()); $chainCachePool = $container->getDefinition('cache.chain'); - $this->assertNotInstanceOf(ChildDefinition::class, $chainCachePool); + $this->assertInstanceOf(ChildDefinition::class, $chainCachePool); $this->assertCount(2, $chainCachePool->getArgument(0)); $this->assertInstanceOf(ChildDefinition::class, $chainCachePool->getArgument(0)[0]); $this->assertSame('cache.adapter.array', $chainCachePool->getArgument(0)[0]->getParent()); From 380afcc8535a7c7f75756b5866201c50ba0d1215 Mon Sep 17 00:00:00 2001 From: Vladimir Valikayev Date: Wed, 26 Mar 2025 14:58:40 +0700 Subject: [PATCH 58/63] [Console] Table counts wrong number of padding symbols in `renderCell()` method when cell contain unicode variant selector --- src/Symfony/Component/Console/Application.php | 2 +- .../Component/Console/Helper/Helper.php | 4 ++- .../Component/Console/Helper/Table.php | 5 +-- .../Console/Tests/Helper/TableTest.php | 36 +++++++++++++++++-- 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Component/Console/Application.php b/src/Symfony/Component/Console/Application.php index dc710e8cc9205..b876bc971dad4 100644 --- a/src/Symfony/Component/Console/Application.php +++ b/src/Symfony/Component/Console/Application.php @@ -1278,7 +1278,7 @@ private function splitStringByWidth(string $string, int $width): array foreach (preg_split('//u', $m[0]) as $char) { // test if $char could be appended to current line - if (mb_strwidth($line.$char, 'utf8') <= $width) { + if (Helper::width($line.$char) <= $width) { $line .= $char; continue; } diff --git a/src/Symfony/Component/Console/Helper/Helper.php b/src/Symfony/Component/Console/Helper/Helper.php index 05be647870781..5999537d71d93 100644 --- a/src/Symfony/Component/Console/Helper/Helper.php +++ b/src/Symfony/Component/Console/Helper/Helper.php @@ -48,7 +48,9 @@ public static function width(?string $string): int $string ??= ''; if (preg_match('//u', $string)) { - return (new UnicodeString($string))->width(false); + $string = preg_replace('/[\p{Cc}\x7F]++/u', '', $string, -1, $count); + + return (new UnicodeString($string))->width(false) + $count; } if (false === $encoding = mb_detect_encoding($string, null, true)) { diff --git a/src/Symfony/Component/Console/Helper/Table.php b/src/Symfony/Component/Console/Helper/Table.php index 1f026dc504adb..809c659283d4b 100644 --- a/src/Symfony/Component/Console/Helper/Table.php +++ b/src/Symfony/Component/Console/Helper/Table.php @@ -564,10 +564,7 @@ private function renderCell(array $row, int $column, string $cellFormat): string } // str_pad won't work properly with multi-byte strings, we need to fix the padding - if (false !== $encoding = mb_detect_encoding($cell, null, true)) { - $width += \strlen($cell) - mb_strwidth($cell, $encoding); - } - + $width += \strlen($cell) - Helper::width($cell) - substr_count($cell, "\0"); $style = $this->getColumnStyle($column); if ($cell instanceof TableSeparator) { diff --git a/src/Symfony/Component/Console/Tests/Helper/TableTest.php b/src/Symfony/Component/Console/Tests/Helper/TableTest.php index 608d23c210bef..3a6b2b724ebc3 100644 --- a/src/Symfony/Component/Console/Tests/Helper/TableTest.php +++ b/src/Symfony/Component/Console/Tests/Helper/TableTest.php @@ -1294,9 +1294,9 @@ public static function renderSetTitle() 'footer', 'default', <<<'TABLE' -+---------------+---- Multiline ++---------------+--- Multiline header -here -+------------------+ +here +------------------+ | ISBN | Title | Author | +---------------+--------------------------+------------------+ | 99921-58-10-7 | Divine Comedy | Dante Alighieri | @@ -2078,4 +2078,36 @@ public function testGithubIssue52101HorizontalFalse() $this->getOutputContent($output) ); } + + public function testGithubIssue60038WidthOfCellWithEmoji() + { + $table = (new Table($output = $this->getOutputStream())) + ->setHeaderTitle('Test Title') + ->setHeaders(['Title', 'Author']) + ->setRows([ + ["🎭 💫 ☯"." Divine Comedy", "Dante Alighieri"], + // the snowflake (e2 9d 84 ef b8 8f) has a variant selector + ["👑 ❄️ 🗡"." Game of Thrones", "George R.R. Martin"], + // the snowflake in text style (e2 9d 84 ef b8 8e) has a variant selector + ["❄︎❄︎❄︎ snowflake in text style ❄︎❄︎❄︎", ""], + ["And a very long line to show difference in previous lines", ""], + ]) + ; + $table->render(); + + $this->assertSame(<<getOutputContent($output) + ); + } } From 6df3b2d2b6e8db9827d840770f6a432b3ea2897f Mon Sep 17 00:00:00 2001 From: Vladimir Valikayev Date: Wed, 26 Mar 2025 15:33:23 +0700 Subject: [PATCH 59/63] [Console] Table counts wrong column width when using colspan and `setColumnMaxWidth()` --- .../Component/Console/Helper/Table.php | 44 ++++++++++++++++++- .../Console/Tests/Helper/TableTest.php | 16 +++---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/Symfony/Component/Console/Helper/Table.php b/src/Symfony/Component/Console/Helper/Table.php index 809c659283d4b..0ef771dd4bd58 100644 --- a/src/Symfony/Component/Console/Helper/Table.php +++ b/src/Symfony/Component/Console/Helper/Table.php @@ -629,8 +629,48 @@ private function buildTableRows(array $rows): TableRows foreach ($rows[$rowKey] as $column => $cell) { $colspan = $cell instanceof TableCell ? $cell->getColspan() : 1; - if (isset($this->columnMaxWidths[$column]) && Helper::width(Helper::removeDecoration($formatter, $cell)) > $this->columnMaxWidths[$column]) { - $cell = $formatter->formatAndWrap($cell, $this->columnMaxWidths[$column] * $colspan); + $minWrappedWidth = 0; + $widthApplied = []; + $lengthColumnBorder = $this->getColumnSeparatorWidth() + Helper::width($this->style->getCellRowContentFormat()) - 2; + for ($i = $column; $i < ($column + $colspan); ++$i) { + if (isset($this->columnMaxWidths[$i])) { + $minWrappedWidth += $this->columnMaxWidths[$i]; + $widthApplied[] = ['type' => 'max', 'column' => $i]; + } elseif (($this->columnWidths[$i] ?? 0) > 0 && $colspan > 1) { + $minWrappedWidth += $this->columnWidths[$i]; + $widthApplied[] = ['type' => 'min', 'column' => $i]; + } + } + if (1 === \count($widthApplied)) { + if ($colspan > 1) { + $minWrappedWidth *= $colspan; // previous logic + } + } elseif (\count($widthApplied) > 1) { + $minWrappedWidth += (\count($widthApplied) - 1) * $lengthColumnBorder; + } + + $cellWidth = Helper::width(Helper::removeDecoration($formatter, $cell)); + if ($minWrappedWidth && $cellWidth > $minWrappedWidth) { + $cell = $formatter->formatAndWrap($cell, $minWrappedWidth); + } + // update minimal columnWidths for spanned columns + if ($colspan > 1 && $minWrappedWidth > 0) { + $columnsMinWidthProcessed = []; + $cellWidth = min($cellWidth, $minWrappedWidth); + foreach ($widthApplied as $item) { + if ('max' === $item['type'] && $cellWidth >= $this->columnMaxWidths[$item['column']]) { + $minWidthColumn = $this->columnMaxWidths[$item['column']]; + $this->columnWidths[$item['column']] = $minWidthColumn; + $columnsMinWidthProcessed[$item['column']] = true; + $cellWidth -= $minWidthColumn + $lengthColumnBorder; + } + } + for ($i = $column; $i < ($column + $colspan); ++$i) { + if (isset($columnsMinWidthProcessed[$i])) { + continue; + } + $this->columnWidths[$i] = $cellWidth + $lengthColumnBorder; + } } if (!str_contains($cell ?? '', "\n")) { continue; diff --git a/src/Symfony/Component/Console/Tests/Helper/TableTest.php b/src/Symfony/Component/Console/Tests/Helper/TableTest.php index 3a6b2b724ebc3..bb1b96346b604 100644 --- a/src/Symfony/Component/Console/Tests/Helper/TableTest.php +++ b/src/Symfony/Component/Console/Tests/Helper/TableTest.php @@ -1576,17 +1576,17 @@ public function testWithColspanAndMaxWith() $expected = <<
    Date: Fri, 27 Jun 2025 22:02:01 +0200 Subject: [PATCH 60/63] skip transient tests in the CI --- .github/workflows/unit-tests.yml | 2 +- .../Component/HttpClient/Tests/AmpHttpClientTest.php | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 4ca6a4d930eea..8b9cf6b6e0cb1 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -67,7 +67,7 @@ jobs: ([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json" echo COLUMNS=120 >> $GITHUB_ENV - echo PHPUNIT="$(pwd)/phpunit --exclude-group tty,benchmark,intl-data,integration" >> $GITHUB_ENV + echo PHPUNIT="$(pwd)/phpunit --exclude-group tty,benchmark,intl-data,integration,transient" >> $GITHUB_ENV echo COMPOSER_UP='composer update --no-progress --ansi'$([[ "${{ matrix.mode }}" != low-deps ]] && echo ' --ignore-platform-req=php+') >> $GITHUB_ENV SYMFONY_VERSIONS=$(git ls-remote -q --heads | cut -f2 | grep -o '/[1-9][0-9]*\.[0-9].*' | sort -V) diff --git a/src/Symfony/Component/HttpClient/Tests/AmpHttpClientTest.php b/src/Symfony/Component/HttpClient/Tests/AmpHttpClientTest.php index d03693694a746..dd45668a837d4 100644 --- a/src/Symfony/Component/HttpClient/Tests/AmpHttpClientTest.php +++ b/src/Symfony/Component/HttpClient/Tests/AmpHttpClientTest.php @@ -19,6 +19,14 @@ */ class AmpHttpClientTest extends HttpClientTestCase { + /** + * @group transient + */ + public function testNonBlockingStream() + { + parent::testNonBlockingStream(); + } + protected function getHttpClient(string $testCase): HttpClientInterface { return new AmpHttpClient(['verify_peer' => false, 'verify_host' => false, 'timeout' => 5]); From 80496647fc83e86da36b483835bebc6e65f83aac Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 28 Jun 2025 10:14:45 +0200 Subject: [PATCH 61/63] Update CHANGELOG for 6.4.23 --- CHANGELOG-6.4.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/CHANGELOG-6.4.md b/CHANGELOG-6.4.md index 78e2a5e01dec1..9aa37e53c9cd4 100644 --- a/CHANGELOG-6.4.md +++ b/CHANGELOG-6.4.md @@ -7,6 +7,46 @@ 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.23 (2025-06-28) + + * bug #60044 [Console] Table counts wrong column width when using colspan and `setColumnMaxWidth()` (vladimir-vv) + * bug #60042 [Console] Table counts wrong number of padding symbols in `renderCell()` method when cell contain unicode variant selector (vladimir-vv) + * bug #60594 [Cache] Fix using a `ChainAdapter` as an adapter for a pool (IndraGunawan) + * bug #60413 [Serializer] Fix collect_denormalization_errors flag in defaultContext (dmbrson) + * bug #60908 [Uid] Improve entropy of the increment for UUIDv7 (nicolas-grekas) + * bug #60914 [Console] Fix command option mode (InputOption::VALUE_REQUIRED) (gharlan) + * bug #60919 [VarDumper] Avoid deprecated call in PgSqlCaster (vrana) + * bug #60888 [Intl] Fix locale validator when canonicalize is true (rdavaillaud) + * bug #60885 [Notifier] Update fake SMS transports to use contracts event dispatcher (paulferrett) + * bug #60859 [TwigBundle] fix preload unlinked class `BinaryOperatorExpressionParser` (Grummfy) + * bug #60772 [Mailer] [Transport] Send clone of `RawMessage` instance in `RoundRobinTransport` (jnoordsij) + * bug #60842 [DependencyInjection] Fix generating adapters of functional interfaces (nicolas-grekas) + * bug #60809 [Serializer] Fix `TraceableSerializer` when called from a callable inside `array_map` (OrestisZag) + * bug #60511 [Serializer] Add support for discriminator map in property normalizer (ruudk) + * bug #60780 [FrameworkBundle] Fix argument not provided to `add_bus_name_stamp_middleware` (maxbaldanza) + * bug #60826 [DependencyInjection] Fix inlining when public services are involved (nicolas-grekas) + * bug #60806 [HttpClient] Limit curl's connection cache size (nicolas-grekas) + * bug #60705 [FrameworkBundle] Fix allow `loose` as an email validation mode (rhel-eo) + * bug #60759 [Messenger] Fix float value for worker memory limit (ro0NL) + * bug #60785 [Security] Handle non-callable implementations of `FirewallListenerInterface` (MatTheCat) + * bug #60781 [DomCrawler] Allow selecting `button`s by their `value` (MatTheCat) + * bug #60775 [Validator] flip excluded properties with keys with Doctrine-style constraint config (xabbuh) + * bug #60779 Silence E_DEPRECATED and E_USER_DEPRECATED (nicolas-grekas) + * bug #60502 [HttpCache] Hit the backend only once after waiting for the cache lock (mpdude) + * bug #60771 [Runtime] fix compatibility with Symfony 7.4 (xabbuh) + * bug #60676 [Form] Fix handling the empty string in NumberToLocalizedStringTransformer (gnat42) + * bug #60694 [Intl] Add missing currency (NOK) localization (en_NO) (llupa) + * bug #60711 [Intl] Ensure data consistency between alpha and numeric codes (llupa) + * bug #60724 [VarDumper] Fix dumping LazyObjectState when using VarExporter v8 (nicolas-grekas) + * bug #60693 [FrameworkBundle] ensureKernelShutdown in tearDownAfterClass (cquintana92) + * bug #60564 [FrameworkBundle] ensureKernelShutdown in tearDownAfterClass (cquintana92) + * bug #60640 [Mailer] use STARTTLS for SMTP with MailerSend (xabbuh) + * bug #60648 [Yaml] fix support for years outside of the 32b range on x86 arch on PHP 8.4 (nicolas-grekas) + * bug #60616 skip interactive questions asked by Composer (xabbuh) + * bug #60584 [DependencyInjection] Make `YamlDumper` quote resolved env vars if necessary (MatTheCat) + * bug #60588 [Notifier][Clicksend] Fix lack of recipient in case DSN does not have optional LIST_ID param (alifanau) + * bug #60547 [HttpFoundation] Fixed 'Via' header regex (thecaliskan) + * 6.4.22 (2025-05-29) * bug #60549 [Translation] Add intl-icu fallback for MessageCatalogue metadata (pontus-mp) From b665f6dec0c1977a69d1a06831f988269d2ceacb Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 28 Jun 2025 10:14:50 +0200 Subject: [PATCH 62/63] Update CONTRIBUTORS for 6.4.23 --- CONTRIBUTORS.md | 8624 +++++++++++++++++++++++++++++------------------ 1 file changed, 5376 insertions(+), 3248 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 3e7f5ec2b6e78..ac9a78cee91b3 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -11,8 +11,8 @@ The Symfony Connect username in parenthesis allows to get more information - Bernhard Schussek (bschussek) - Robin Chalas (chalas_r) - Tobias Schultze (tobion) - - Grégoire Pineau (lyrixx) - Alexandre Daubois (alexandre-daubois) + - Grégoire Pineau (lyrixx) - Thomas Calvet (fancyweb) - Christophe Coevoet (stof) - Wouter de Jong (wouterj) @@ -24,7 +24,6 @@ The Symfony Connect username in parenthesis allows to get more information - Ryan Weaver (weaverryan) - Jérémy DERUSSÉ (jderusse) - Jules Pietri (heah) - - Roland Franssen - Oskar Stark (oskarstark) - Johannes S (johannes) - Kris Wallsmith (kriswallsmith) @@ -45,12 +44,12 @@ The Symfony Connect username in parenthesis allows to get more information - Lukas Kahwe Smith (lsmith) - Hamza Amrouche (simperfit) - Martin Hasoň (hason) + - Mathias Arlaud (mtarld) - Jeremy Mikola (jmikola) - Jean-François Simon (jfsimon) - Benjamin Eberlei (beberlei) - Igor Wiedler - Jan Schädlich (jschaedl) - - Mathias Arlaud (mtarld) - Mathieu Lechat (mat_the_cat) - Simon André (simonandre) - Vincent Langlet (deviling) @@ -61,25 +60,23 @@ The Symfony Connect username in parenthesis allows to get more information - Grégoire Paris (greg0ire) - Alexandre Salomé (alexandresalome) - William DURAND - - ornicar - Dany Maillard (maidmaid) - - Eriksen Costa - Diego Saint Esteben (dosten) - - Dariusz Ruminski - - stealth35 ‏ (stealth35) - - Alexander Mols (asm89) - Gábor Egyed (1ed) - Francis Besset (francisbesset) - - Mathieu Santostefano (welcomattic) - - Titouan Galopin (tgalopin) + - Alexander Mols (asm89) + - stealth35 ‏ (stealth35) + - Eriksen Costa - Pierre du Plessis (pierredup) - - David Maicher (dmaicher) + - Titouan Galopin (tgalopin) + - Mathieu Santostefano (welcomattic) - Tomasz Kowalczyk (thunderer) + - David Maicher (dmaicher) - Bulat Shakirzyanov (avalanche123) - - Iltar van der Berg + - Alexander Schranz (alexander-schranz) - Miha Vrhovnik (mvrhov) + - Iltar van der Berg - Gary PEGEOT (gary-p) - - Alexander Schranz (alexander-schranz) - Saša Stamenković (umpirsky) - Allison Guilhem (a_guilhem) - Mathieu Piot (mpiot) @@ -87,986 +84,870 @@ The Symfony Connect username in parenthesis allows to get more information - Sarah Khalil (saro0h) - Laurent VOULLEMIER (lvo) - Konstantin Kudryashov (everzet) - - Guilhem N (guilhemn) - Bilal Amarni (bamarni) + - Guilhem N (guilhemn) - Eriksen Costa - - Florin Patan (florinpatan) + - Ruud Kamphuis (ruudk) - Vladimir Reznichenko (kalessil) - - Peter Rehm (rpet) + - Florin Patan (florinpatan) - Henrik Bjørnskov (henrikbjorn) - - Ruud Kamphuis (ruudk) - - David Buchmann (dbu) + - Peter Rehm (rpet) - Tomas Norkūnas (norkunas) - - Andrej Hudec (pulzarraider) + - David Buchmann (dbu) - Jáchym Toušek (enumag) + - Andrej Hudec (pulzarraider) + - Eric Clemmons (ericclemmons) - Hubert Lenoir (hubert_lenoir) - Christian Raue - - Eric Clemmons (ericclemmons) - - Denis (yethee) - - Alex Pott - Michel Weimerskirch (mweimerskirch) + - Matthias Schmidt + - Douglas Greenshields (shieldo) - Issei Murasawa (issei_m) + - Alex Pott - Arnout Boks (aboks) - - Douglas Greenshields (shieldo) - - Frank A. Fiebig (fafiebig) + - Denis (yethee) - Baldini - Fran Moreno (franmomu) + - Frank A. Fiebig (fafiebig) - Antoine Makdessi (amakdessi) - - Charles Sarrazin (csarrazi) - - Henrik Westphal (snc) - Dariusz Górecki (canni) + - Henrik Westphal (snc) + - Charles Sarrazin (csarrazi) + - Massimiliano Arione (garak) - Ener-Getick - Graham Campbell (graham) - Joel Wurtz (brouznouf) - - Massimiliano Arione (garak) - - Tugdual Saunier (tucksaun) - - Lee McDermott - Brandon Turner - Luis Cordova (cordoval) + - Tugdual Saunier (tucksaun) + - Lee McDermott - Phil E. Taylor (philetaylor) - - Konstantin Myakshin (koc) - - Daniel Holmes (dholmes) - Julien Falque (julienfalque) - - Toni Uebernickel (havvg) + - Konstantin Myakshin (koc) - Bart van den Burg (burgov) - - Vasilij Dusko | CREATION - Jordan Alliot (jalliot) - - Théo FIDRY - - John Wards (johnwards) + - Daniel Holmes (dholmes) + - Vasilij Dusko | CREATION + - Toni Uebernickel (havvg) - Valtteri R (valtzu) - Yanick Witschi (toflar) + - Théo FIDRY + - John Wards (johnwards) - Antoine Hérault (herzult) - Konstantin.Myakshin - - Jeroen Spee (jeroens) - - Arnaud Le Blanc (arnaud-lb) - - Sebastiaan Stok (sstok) - Maxime STEINHAUSSER - Rokas Mikalkėnas (rokasm) - Tac Tacelosky (tacman1123) - - gnito-org - - Tim Nagel (merk) - - Chris Wilkinson (thewilkybarkid) - - Jérôme Vasseur (jvasseur) - - Peter Kokot (peterkokot) + - Arnaud Le Blanc (arnaud-lb) + - matlec + - Jeroen Spee (jeroens) + - Sebastiaan Stok (sstok) - Brice BERNARD (brikou) + - Peter Kokot (peterkokot) + - Jérôme Vasseur (jvasseur) + - Chris Wilkinson (thewilkybarkid) + - Tim Nagel (merk) - Jacob Dreesen (jdreesen) - - Nicolas Philippe (nikophil) - - Martin Auswöger + - gnito-org - Michal Piotrowski - marc.weistroff - Lars Strojny (lstrojny) - - lenar - Vladimir Tsykun (vtsykun) + - Nicolas Philippe (nikophil) - Włodzimierz Gajda (gajdaw) - Javier Spagnoletti (phansys) - Adrien Brault (adrienbrault) - - Florent Morselli (spomky_) - soyuka - - Florian Voutzinos (florianv) - - Teoh Han Hui (teohhanhui) - - Przemysław Bogusz (przemyslaw-bogusz) + - Florent Morselli (spomky_) - Colin Frei - - excelwebzone + - Przemysław Bogusz (przemyslaw-bogusz) + - Teoh Han Hui (teohhanhui) + - Florian Voutzinos (florianv) + - Maxime Helias (maxhelias) - Paráda József (paradajozsef) - - Maximilian Beckers (maxbeckers) - Baptiste Clavié (talus) + - Maximilian Beckers (maxbeckers) - Alexander Schwenn (xelaris) - - Maxime Helias (maxhelias) - - Fabien Pennequin (fabienpennequin) - Dāvis Zālītis (k0d3r1s) - Gordon Franke (gimler) - - Malte Schlüter (maltemaltesich) - - jeremyFreeAgent (jeremyfreeagent) + - Fabien Pennequin (fabienpennequin) + - Vasilij Dusko - Michael Babker (mbabker) - - Alexis Lefebvre - - Hugo Alliaume (kocal) - Christopher Hertel (chertel) + - Hugo Alliaume (kocal) - Joshua Thijssen - - Vasilij Dusko + - jeremyFreeAgent (jeremyfreeagent) + - Malte Schlüter (maltemaltesich) + - Alexis Lefebvre - Daniel Wehner (dawehner) - - Robert Schönthal (digitalkaoz) - - Smaine Milianni (ismail1432) - - François-Xavier de Guillebon (de-gui_f) - Andreas Schempp (aschempp) - - noniagriconomie - Eric GELOEN (gelo) - Gabriel Caruso - - Stefano Sala (stefano.sala) - - Ion Bazan (ionbazan) - - Niels Keurentjes (curry684) + - Smaine Milianni (ismail1432) + - François-Xavier de Guillebon (de-gui_f) - OGAWA Katsuhiro (fivestar) + - Robert Schönthal (digitalkaoz) + - Ion Bazan (ionbazan) - Jhonny Lidfors (jhonne) - - Juti Noppornpitak (shiroyuki) + - Niels Keurentjes (curry684) + - Stefano Sala (stefano.sala) - Gregor Harlan (gharlan) - - Anthony MARTIN - Sebastian Hörl (blogsh) + - Hidenori Goto (hidenorigoto) + - Jonathan Scheiber (jmsche) + - Anthony MARTIN - Tigran Azatyan (tigranazatyan) - Florent Mata (fmata) - - Jonathan Scheiber (jmsche) - - Daniel Gomes (danielcsgomes) - - Hidenori Goto (hidenorigoto) - - Thomas Landauer (thomas-landauer) - Arnaud Kleinpeter (nanocom) - - Guilherme Blanco (guilhermeblanco) + - Juti Noppornpitak (shiroyuki) - David Prévot (taffit) - - Saif Eddin Gmati (azjezz) - - Farhad Safarov (safarov) - - SpacePossum - - Richard van Laak (rvanlaak) - - Andreas Braun - - Pablo Godel (pgodel) + - Guilherme Blanco (guilhermeblanco) + - Thomas Landauer (thomas-landauer) + - Daniel Gomes (danielcsgomes) - Alessandro Chitolina (alekitto) - - Jan Rosier (rosier) + - jwdeitch - Rafael Dohms (rdohms) + - Pablo Godel (pgodel) + - Saif Eddin Gmati (azjezz) + - Jan Rosier (rosier) + - Richard van Laak (rvanlaak) + - Farhad Safarov (safarov) - Roman Martinuk (a2a4) - - jwdeitch - - Jérôme Parmentier (lctrs) - - Ahmed TAILOULOUTE (ahmedtai) - - Simon Berger - - Jérémy Derussé - - Matthieu Napoli (mnapoli) - - Bob van de Vijver (bobvandevijver) - Tomas Votruba (tomas_votruba) - Arman Hosseini (arman) - - Sokolov Evgeniy (ewgraf) - Andréia Bohner (andreia) - - Tom Van Looy (tvlooy) - - Vyacheslav Pavlov + - Sokolov Evgeniy (ewgraf) - Albert Casademont (acasademont) - - George Mponos (gmponos) + - Jérémy Derussé + - Matthieu Napoli (mnapoli) - Richard Shank (iampersistent) - - Roland Franssen :) + - Ahmed TAILOULOUTE (ahmedtai) + - Bob van de Vijver (bobvandevijver) + - George Mponos (gmponos) - Fritz Michael Gschwantner (fritzmg) - - Romain Monteil (ker0x) - - Sergey (upyx) + - Roland Franssen + - Vyacheslav Pavlov + - Jérôme Parmentier (lctrs) + - Simon Berger + - Tom Van Looy (tvlooy) + - Alessandro Lai (jean85) + - Daniel Burger + - Jannik Zschiesche + - Jesse Rushlow (geeshoe) - Marco Pivetta (ocramius) - - Antonio Pauletich (x-coder264) - Vincent Touzet (vincenttouzet) - - Fabien Bourigault (fbourigault) - - Olivier Dolbeau (odolbeau) - - Rouven Weßling (realityking) - - Daniel Burger - - Ben Davies (bendavies) - - YaFou - - Guillaume (guill) + - Antonio Pauletich (x-coder264) + - Samuel NELA (snela) + - Tyson Andre - Clemens Tolboom - - Oleg Voronkovich - - Helmer Aaviksoo - - Alessandro Lai (jean85) - - 77web - - Gocha Ossinkine (ossinkine) - - matlec - - Jesse Rushlow (geeshoe) - - Matthieu Ouellette-Vachon (maoueh) - - Michał Pipa (michal.pipa) - - Dawid Nowak - Philipp Wahala (hifi) - - Jannik Zschiesche - - Amal Raghav (kertz) + - Matthieu Ouellette-Vachon (maoueh) + - Gocha Ossinkine (ossinkine) + - Stiven Llupa (sllupa) + - Fabien Bourigault (fbourigault) - Jonathan Ingram + - Ben Davies (bendavies) + - Rouven Weßling (realityking) + - Olivier Dolbeau (odolbeau) + - Sergey (upyx) - Artur Kotyrba + - 77web - Wouter J - - Tyson Andre + - Romain Monteil (ker0x) - GDIBass - - Samuel NELA (snela) - - Baptiste Leduc (korbeil) - - Vincent AUBERT (vincent) - - Nate Wiebe (natewiebe13) + - Dawid Nowak + - YaFou + - Oleg Voronkovich + - Guillaume (guill) + - Amal Raghav (kertz) + - Michał Pipa (michal.pipa) + - Marko Kaznovac (kaznovac) + - wkania + - Sergey Linnik (linniksa) - Michael Voříšek + - Arnaud PETITPAS (apetitpa) + - Asis Pattisahusiwa - zairig imad (zairigimad) - - Colin O'Dell (colinodell) - - Sébastien Alfaiate (seb33300) - - James Halsall (jaitsu) - - Christian Scheb - Alex Hofbauer (alexhofbauer) - - Mikael Pajunen - - Warnar Boekkooi (boekkooi) - - Justin Hileman (bobthecow) - - Anthony GRASSIOT (antograssiot) - - Dmitrii Chekaliuk (lazyhammer) - - Clément JOBEILI (dator) - - Andreas Möller (localheinz) - - Marek Štípek (maryo) - - Daniel Espendiller - - Arnaud PETITPAS (apetitpa) - Michael Käfer (michael_kaefer) - - Dorian Villet (gnutix) - - Martin Hujer (martinhujer) - - Sergey Linnik (linniksa) - - Richard Miller + - Nate Wiebe (natewiebe13) - Quynh Xuan Nguyen (seriquynh) - - Victor Bocharsky (bocharsky_bw) - - Asis Pattisahusiwa - - Aleksandar Jakovljevic (ajakov) - - Mario A. Alvarez Garcia (nomack84) - - Thomas Rabaix (rande) - D (denderello) - - DQNEO + - Anthony GRASSIOT (antograssiot) + - Mario A. Alvarez Garcia (nomack84) + - Christian Scheb + - Indra Gunawan (indragunawan) + - Colin O'Dell (colinodell) + - Thomas Rabaix (rande) + - Martin Hujer (martinhujer) + - Dmitrii Chekaliuk (lazyhammer) + - Vincent AUBERT (vincent) - Chi-teck - - Marko Kaznovac (kaznovac) - - Stiven Llupa (sllupa) - - Andre Rømcke (andrerom) - - Bram Leeda (bram123) - - Patrick Landolt (scube) - - Karoly Gossler (connorhu) + - Aleksandar Jakovljevic (ajakov) + - Larry Garfield (crell) + - Richard Miller + - Warnar Boekkooi (boekkooi) + - Justin Hileman (bobthecow) + - Baptiste Leduc (korbeil) + - Daniel Espendiller + - James Halsall (jaitsu) + - DQNEO + - Clément JOBEILI (dator) + - Sébastien Alfaiate (seb33300) + - Marek Štípek (maryo) + - Andreas Möller (localheinz) + - Mikael Pajunen + - Dorian Villet (gnutix) + - Victor Bocharsky (bocharsky_bw) + - Stepan Anchugov (kix) + - Filippo Tessarotto (slamdunk) - Timo Bakx (timobakx) - - Quentin Devos - - Giorgio Premi - - Alan Poulain (alanpoulain) - - Ruben Gonzalez (rubenrua) - - Benjamin Dulau (dbenjamin) - Markus Fasselt (digilist) - Denis Brumann (dbrumann) - - mcfedr (mcfedr) - - Loick Piera (pyrech) - - Remon van de Kamp - - Mathieu Lemoine (lemoinem) - - Christian Schmidt - Andreas Hucks (meandmymonkey) - - Artem Lopata - - Indra Gunawan (indragunawan) - - Noel Guilbert (noel) - - Bastien Jaillot (bastnic) - - Soner Sayakci - - Stadly - - Stepan Anchugov (kix) + - Nikolay Labinskiy (e-moe) + - Santiago San Martin (santysisi) - bronze1man + - Pierre Minnieur (pminnieur) + - Bastien Jaillot (bastnic) + - Andre Rømcke (andrerom) + - Guilliam Xavier - sun (sun) - - Filippo Tessarotto (slamdunk) - - Larry Garfield (crell) - Leo Feyer - - Nikolay Labinskiy (e-moe) - - Martin Schuhfuß (usefulthink) + - Giorgio Premi + - Mathieu Lemoine (lemoinem) + - Stadly + - Ruben Gonzalez (rubenrua) + - Remon van de Kamp + - Patrick Landolt (scube) + - Bram Leeda (bram123) + - Christian Schmidt + - Noel Guilbert (noel) - apetitpa - - wkania - - Guilliam Xavier - - Pierre Minnieur (pminnieur) - - Dominique Bongiraud - - Hugo Monteiro (monteiro) - - Dmitrii Poddubnyi (karser) - - Julien Pauli - - Jonathan H. Wage - - Michael Lee (zerustech) + - Karoly Gossler (connorhu) + - Alan Poulain (alanpoulain) + - mcfedr (mcfedr) + - Benjamin Dulau (dbenjamin) + - Loick Piera (pyrech) + - Martin Schuhfuß (usefulthink) + - Quentin Devos + - François Pluchino (francoispluchino) + - Maciej Malarz (malarzm) + - Edi Modrić (emodric) + - Mantis Development + - Sven Paulus (subsven) + - Dustin Whittle (dustinwhittle) + - Priyadi Iman Nurcahyo (priyadi) + - Arjen van der Meijden - Florian Lonqueu-Brochard (florianlb) - - Joe Bennett (kralos) - - Leszek Prabucki (l3l0) - - Wojciech Kania - - Thomas Lallement (raziel057) + - Jonathan H. Wage - Yassine Guedidi (yguedidi) - - François Zaninotto (fzaninotto) - - Dustin Whittle (dustinwhittle) - - Timothée Barray (tyx) - - jeff + - Tristan Darricau (tristandsensio) - John Kary (johnkary) - - Võ Xuân Tiến (tienvx) - fd6130 (fdtvui) - - Antonio J. García Lagar (ajgarlag) - - Priyadi Iman Nurcahyo (priyadi) + - Jan Sorgalla (jsor) + - Jérémie Augustin (jaugustin) - Oleg Andreyev (oleg.andreyev) - - Maciej Malarz (malarzm) - - Marcin Sikoń (marphi) - - Michele Orselli (orso) - - Arjen van der Meijden - - Sven Paulus (subsven) + - Võ Xuân Tiến (tienvx) + - Evert Harmeling (evertharmeling) + - Julien Brochet + - Joe Bennett (kralos) - Peter Kruithof (pkruithof) + - Pascal Montoya + - Wojciech Kania + - jeff + - Michele Orselli (orso) + - Timothée Barray (tyx) - Maxime Veber (nek-) - - Valentine Boineau (valentineboineau) - - Rui Marinho (ruimarinho) + - Marcin Sikoń (marphi) + - Thomas Lallement (raziel057) + - Leszek Prabucki (l3l0) - Jeroen Noten (jeroennoten) - - Possum - - Jérémie Augustin (jaugustin) - - Edi Modrić (emodric) - - Pascal Montoya - - Julien Brochet - - François Pluchino (francoispluchino) - - W0rma - - Tristan Darricau (tristandsensio) - - Jan Sorgalla (jsor) - henrikbjorn + - Antonio J. García Lagar (ajgarlag) + - Rui Marinho (ruimarinho) + - François Zaninotto (fzaninotto) + - Hugo Monteiro (monteiro) + - Valentine Boineau (valentineboineau) + - Michael Lee (zerustech) - Marcel Beerta (mazen) - - Evert Harmeling (evertharmeling) - - Mantis Development - - Hidde Wieringa (hiddewie) - - dFayet + - Dmitrii Poddubnyi (karser) + - jdhoek + - Philipp Cordes (corphi) + - Sullivan SENECHAL (soullivaneuh) + - Sylvain Fabre (sylfabre) + - Michel Roca (mroca) + - Chekote + - maxime.steinhausser - Rob Frawley 2nd (robfrawley) - - Renan (renanbr) - - Nikita Konstantinov (unkind) - - Dariusz - - Daniel Gorgan - - Francois Zaninotto + - Tim Goudriaan (codedmonkey) + - Elnur Abdurrakhimov (elnur) + - javaDeveloperKid - Aurélien Pillevesse (aurelienpillevesse) + - Ray + - Anderson Müller - Daniel Tschinder - - Christian Schmidt - - Alexander Kotynia (olden) - - Matthieu Lempereur (mryamous) - - Elnur Abdurrakhimov (elnur) + - Hidde Wieringa (hiddewie) - Manuel Reinhard (sprain) - - Zan Baldwin (zanbaldwin) - - Tim Goudriaan (codedmonkey) - - BoShurik - - Adam Prager (padam87) - - Benoît Burnichon (bburnichon) - - maxime.steinhausser - - Iker Ibarguren (ikerib) - - Roman Ring (inori) - - Xavier Montaña Carreras (xmontana) - - Romaric Drigon (romaricdrigon) - - Sylvain Fabre (sylfabre) - - Xavier Perez - - Arjen Brouwer (arjenjb) - - Patrick McDougle (patrick-mcdougle) - - Arnt Gulbrandsen - - Michel Roca (mroca) - - Marc Weistroff (futurecat) - - Michał (bambucha15) - - Danny Berger (dpb587) - - Alif Rachmawadi - - Anton Chernikov (anton_ch1989) - - Pierre-Yves Lebecq (pylebecq) - - Benjamin Leveque (benji07) - - Jordan Samouh (jordansamouh) - - David Badura (davidbadura) - - Sullivan SENECHAL (soullivaneuh) + - Adrian Rudnik (kreischweide) + - Nikita Konstantinov (unkind) + - Matthieu Lempereur (mryamous) - Uwe Jäger (uwej711) - - javaDeveloperKid - - Chris Smith (cs278) - - Lynn van der Berg (kjarli) - - Michaël Perrin (michael.perrin) + - Jurica Vlahoviček (vjurica) - Eugene Leonovich (rybakit) + - Zan Baldwin (zanbaldwin) + - Fabien S (bafs) - Joseph Rouff (rouffj) + - Xavier Perez + - Roman Ring (inori) + - Xavier Montaña Carreras (xmontana) + - Bob den Otter (bopp) - Félix Labrecque (woodspire) - Marvin Petker - GordonsLondon - - Ray - - Philipp Cordes (corphi) - - Fabien S (bafs) - - Chekote + - David Badura (davidbadura) + - Michaël Perrin (michael.perrin) - Thomas Adam - - Anderson Müller - - jdhoek - - Jurica Vlahoviček (vjurica) - - Bob den Otter (bopp) + - Romaric Drigon (romaricdrigon) + - Pierre-Yves Lebecq (pylebecq) + - Dariusz Ruminski + - Danny Berger (dpb587) + - Daniel Gorgan + - Benjamin Leveque (benji07) + - Michał (bambucha15) + - Marc Weistroff (futurecat) + - Renan (renanbr) + - dFayet - Thomas Schulz (king2500) + - Francois Zaninotto + - Christian Schmidt + - Arjen Brouwer (arjenjb) + - Alexander Kotynia (olden) + - Arnt Gulbrandsen + - BoShurik + - Adam Prager (padam87) + - Benoît Burnichon (bburnichon) + - Lynn van der Berg (kjarli) + - Alif Rachmawadi + - Jordan Samouh (jordansamouh) - Kyle - - Dariusz Rumiński - - Philippe SEGATORI (tigitz) - - Frank de Jonge - - Andrii Bodnar - - Dane Powell - - Sebastien Morel (plopix) - - Christopher Davis (chrisguitarguy) - - Loïc Frémont (loic425) - - Matthieu Auger (matthieuauger) + - Iker Ibarguren (ikerib) + - Patrick McDougle (patrick-mcdougle) + - Chris Smith (cs278) + - Anton Chernikov (anton_ch1989) - Sergey Belyshkin (sbelyshkin) - - Kévin THERAGE (kevin_therage) - - Herberto Graca - - Yoann RENARD (yrenard) - - Josip Kruslin (jkruslin) - - renanbr - - Sébastien Lavoie (lavoiesl) - - Alex Rock (pierstoval) - - Wodor Wodorski - - Beau Simensen (simensen) - - Magnus Nordlander (magnusnordlander) + - Warxcell (warxcell) + - jaugustin + - Dominique Bongiraud + - Florian Klein (docteurklein) + - Damien Alexandre (damienalexandre) + - Bertrand Zuchuat (garfield-fr) + - Baptiste Lafontaine (magnetik) - Robert Kiss (kepten) + - Serkan Yildiz (srknyldz) + - Alex Rock (pierstoval) - Alexandre Quercia (alquerci) + - Matthieu Auger (matthieuauger) + - Andrew Moore (finewolf) + - Mathieu Rochette (mathroc) - Marcos Sánchez + - Jordane VASPARD (elementaire) + - Pavel Batanov (scaytrase) + - Thomas Bisignani (toma) + - Andrii Bodnar + - Simon Podlipsky (simpod) - Emanuele Panzeri (thepanz) - - Zmey - - Santiago San Martin (santysisi) + - janschoenherr - Kim Hemsø Rasmussen (kimhemsoe) - - Maximilian Reichel (phramz) + - Loïc Frémont (loic425) - Samaël Villette (samadu61) - - jaugustin - Pascal Luna (skalpa) + - Marc Morera (mmoreram) + - Cédric Anne - Wouter Van Hecke - - Baptiste Lafontaine (magnetik) - - Michael Hirschler (mvhirsch) + - Beau Simensen (simensen) - Michael Holm (hollo) - - Robert Meijers - - roman joly (eltharin) - Blanchon Vincent (blanchonvincent) - - Cédric Anne - Christian Schmidt + - Atsuhiro KUBO (iteman) + - Emanuele Gaspari (inmarelibero) - Ben Hakim - Marco Petersen (ocrampete16) + - Lee Rowlands + - Christopher Davis (chrisguitarguy) + - Gustavo Piltcher - Bohan Yang (brentybh) - - Vilius Grigaliūnas - - Jordane VASPARD (elementaire) - - Thomas Bisignani (toma) - - Florian Klein (docteurklein) - - Pierre Ambroise (dotordu) - - Raphaël Geffroy (raphael-geffroy) - - Damien Alexandre (damienalexandre) + - Jan Decavele (jandc) + - Jerzy Zawadzki (jzawadzki) + - Aurelijus Valeiša (aurelijus) + - Emmanuel BORGES + - Craig Duncan (duncan3dc) - Manuel Kießling (manuelkiessling) - - Alexey Kopytko (sanmai) - - Warxcell (warxcell) - - SiD (plbsid) - - Atsuhiro KUBO (iteman) - - rudy onfroy (ronfroy) - - Serkan Yildiz (srknyldz) - - Andrew Moore (finewolf) - - Bertrand Zuchuat (garfield-fr) - - Marc Morera (mmoreram) - Gabor Toth (tgabi333) - - realmfoo - Joppe De Cuyper (joppedc) - - Simon Podlipsky (simpod) - - Thomas Tourlourat (armetiz) - - Andrey Esaulov (andremaha) - - Grégoire Passault (gregwar) - - Jerzy Zawadzki (jzawadzki) - - Ismael Ambrosi (iambrosi) - - Craig Duncan (duncan3dc) - - Emmanuel BORGES - - Mathieu Rochette (mathroc) - Karoly Negyesi (chx) - - Aurelijus Valeiša (aurelijus) - - Jan Decavele (jandc) - - Gustavo Piltcher - - Lee Rowlands + - Vilius Grigaliūnas + - Philippe SEGATORI (tigitz) + - Sébastien Lavoie (lavoiesl) + - Michael Hirschler (mvhirsch) + - realmfoo - Stepan Tanasiychuk (stfalcon) + - Raphaël Geffroy (raphael-geffroy) + - Herberto Graca + - Ismael Ambrosi (iambrosi) + - renanbr + - Grégoire Passault (gregwar) + - roman joly (eltharin) + - Andrey Esaulov (andremaha) + - Frank de Jonge + - Josip Kruslin (jkruslin) + - Kévin THERAGE (kevin_therage) - Ivan Kurnosov + - Pierre Ambroise (dotordu) + - rudy onfroy (ronfroy) + - Maximilian Reichel (phramz) + - Francesc Rosàs (frosas) + - Benjamin Morel - Tiago Ribeiro (fixe) + - Sebastien Morel (plopix) + - Magnus Nordlander (magnusnordlander) + - Dane Powell + - Thomas Tourlourat (armetiz) + - SiD (plbsid) + - Alexey Kopytko (sanmai) - Raul Fraile (raulfraile) - - Adrian Rudnik (kreischweide) - - Pavel Batanov (scaytrase) - - Francesc Rosàs (frosas) - - Bongiraud Dominique - - janschoenherr - - Emanuele Gaspari (inmarelibero) + - Jack Worman (jworman) + - Yoann RENARD (yrenard) + - Wodor Wodorski + - Pavel Volokitin (pvolok) + - Ivan Mezinov + - Erin Millard + - Hamza Makraz (makraz) + - Zmey - Artem (artemgenvald) + - ivan + - Lukáš Holeczy (holicz) + - SUMIDA, Ippei (ippey_s) - Thierry T (lepiaf) - Lorenz Schori - - Lukáš Holeczy (holicz) - Jeremy Livingston (jeremylivingston) - - ivan - - SUMIDA, Ippei (ippey_s) + - Nicolas LEFEVRE (nicoweb) + - Roumen Damianoff - Urinbayev Shakhobiddin (shokhaa) - Ahmed Raafat - - Philippe Segatori - - Thibaut Cheymol (tcheymol) - - Vincent Chalamon - - Raffaele Carelle - - Erin Millard - - Matthew Lewinski (lewinski) - Islam Israfilov (islam93) - - Ricard Clau (ricardclau) - - Roumen Damianoff - Thomas Royer (cydonia7) - - Nicolas LEFEVRE (nicoweb) + - Harm van Tilborg (hvt) + - Haralan Dobrev (hkdobrev) + - Gonzalo Vilaseca (gonzalovilaseca) + - Francesco Levorato + - smoench - Asmir Mustafic (goetas) + - Tobias Sjösten (tobiassjosten) - Mateusz Sip (mateusz_sip) - - Francesco Levorato + - C (dagardner) + - Dalibor Karlović - Vitaliy Zakharov (zakharovvi) - - Tobias Sjösten (tobiassjosten) + - Inal DJAFAR (inalgnu) - Gyula Sallai (salla) + - Johann Pardanaud - Hendrik Luup (hluup) - - Inal DJAFAR (inalgnu) - - C (dagardner) + - Pierre Rineau + - mondrake (mondrake) - Martin Herndl (herndlm) + - Yaroslav Kiliba - Dmytro Borysovskyi (dmytr0) - - Johann Pardanaud - - Pierre Rineau - - Kai Dederichs - Pavel Kirpitsov (pavel-kirpichyov) - - Artur Eshenbrener - - Issam Raouf (iraouf) - - Harm van Tilborg (hvt) - Thomas Perez (scullwm) - Gwendolen Lynch - - smoench - Felix Labrecque - - mondrake (mondrake) - - Yaroslav Kiliba - FORT Pierre-Louis (plfort) - - Jan Böhmer - Terje Bråten - - Gonzalo Vilaseca (gonzalovilaseca) - Tarmo Leppänen (tarlepp) - Jakub Kucharovic (jkucharovic) - Daniel STANCU - Kristen Gilden - Robbert Klarenbeek (robbertkl) - - Dalibor Karlović - - Hamza Makraz (makraz) - Eric Masoero (eric-masoero) - Vitalii Ekert (comrade42) - Clara van Miert - - Haralan Dobrev (hkdobrev) - hossein zolfi (ocean) - - Alexander Menshchikov - - Clément Gautier (clementgautier) - James Gilliland (neclimdul) - - Sanpi (sanpi) - - Eduardo Gulias (egulias) - - giulio de donato (liuggio) - - Ivan Mezinov + - Kirill chEbba Chebunin + - Nathanael Noblet (gnat) - ShinDarth - - Stéphane PY (steph_py) + - giulio de donato (liuggio) + - Marek Kalnik (marekkalnik) + - Matthias Althaus (althaus) + - Eduardo Gulias (egulias) - Cătălin Dan (dancatalin) - - Philipp Kräutli (pkraeutli) - - Rhodri Pugh (rodnaph) + - Dimitri Gritsajuk (ottaviano) + - Daniel Tschinder + - Stéphane PY (steph_py) - BrokenSourceCode + - Alex (aik099) + - Rhodri Pugh (rodnaph) - Grzegorz (Greg) Zdanowski (kiler129) - - Dimitri Gritsajuk (ottaviano) - - Kirill chEbba Chebunin - Pol Dellaiera (drupol) - - Alex (aik099) + - Clément Gautier (clementgautier) - Kieran Brahney + - Sanpi (sanpi) - Fabien Villepinte + - Vyacheslav Salakhutdinov (megazoll) - Greg Thornton (xdissent) - Alex Bowers + - Gasan Guseynov (gassan) + - Philipp Kräutli (pkraeutli) - Kev - kor3k kor3k (kor3k) - Costin Bereveanu (schniper) - - Andrii Dembitskyi - - Gasan Guseynov (gassan) - - Marek Kalnik (marekkalnik) - - Vyacheslav Salakhutdinov (megazoll) - Maksym Slesarenko (maksym_slesarenko) - Marc Biorklund (mbiork) - - Hassan Amouhzi - - Tamas Szijarto - Michele Locati - - Yannick Ihmels (ihmels) - - Pavel Volokitin (pvolok) - Arthur de Moulins (4rthem) - - Matthias Althaus (althaus) - - Saif Eddin G - - Endre Fejes - Tobias Naumann (tna) - Daniel Beyer - Ivan Sarastov (isarastov) - flack (flack) - Shein Alexey - - Link1515 - Joe Lencioni - - Daniel Tschinder - - Diego Agulló (aeoris) - vladimir.reznichenko + - Albert Jessurum (ajessu) - Kai - - Alain Hippolyte (aloneh) - Grenier Kévin (mcsky_biig) - Xavier HAUSHERR - - Albert Jessurum (ajessu) - - Romain Pierre - - Laszlo Korte - Alessandro Desantis - hubert lecorche (hlecorche) - Vladyslav Loboda - Marc Morales Valldepérez (kuert) + - Karel Souffriau - Vadim Kharitonov (vadim) - Oscar Cubo Medina (ocubom) - - Karel Souffriau + - Alain Hippolyte (aloneh) - Christophe L. (christophelau) - - a.dmitryuk - - Anthon Pang (robocoder) - Julien Galenski (ruian) - - Benjamin Morel - Ben Scott (bpscott) - - Shyim - Pablo Lozano (arkadis) - - Brian King - - quentin neyrat (qneyrat) - - Chris Tanaskoski (devristo) - - Steffen Roßkamp - - Andrey Lebedev (alebedev) - - Alexandru Furculita (afurculita) - - Michel Salib (michelsalib) - - Ben Roberts (benr77) - - Ahmed Ghanem (ahmedghanem00) - - Valentin Jonovs - - geoffrey - - Quentin Dequippe (qdequippe) - - Benoit Galati (benoitgalati) - - Benjamin (yzalis) - - Jeanmonod David (jeanmonod) - - Webnet team (webnet) - - Christian Gripp (core23) - - Tobias Bönner - - Nicolas Rigaud - - PHAS Developer - - Ben Ramsey (ramsey) - - Berny Cantos (xphere81) - - Antonio Jose Cerezo (ajcerezo) - - Maelan LE BORGNE - - Thomas Talbot (ioni) - - Marcin Szepczynski (czepol) - - Lescot Edouard (idetox) - - Dennis Fridrich (dfridrich) - - Mohammad Emran Hasan (phpfour) - - Florian Merle (florian-merle) - - Dmitriy Mamontov (mamontovdmitriy) - - Jan Schumann - - Matheo Daninos (mathdns) - - Neil Peyssard (nepey) - - Niklas Fiekas - - Mark Challoner (markchalloner) - - Andreas Hennings - - Markus Bachmann (baachi) - - Gunnstein Lye (glye) - - Erkhembayar Gantulga (erheme318) - - Yi-Jyun Pan - - Sergey Melesh (sergex) - - Greg Anderson - - Arnaud De Abreu (arnaud-deabreu) - - lancergr - - Benjamin Zaslavsky (tiriel) - - Tri Pham (phamuyentri) - - Angelov Dejan (angelov) - - Ivan Nikolaev (destillat) - - Gildas Quéméner (gquemener) - - Ioan Ovidiu Enache (ionutenache) - - Mokhtar Tlili (sf-djuba) - - Maxim Dovydenok (dovydenok-maxim) - - Laurent Masforné (heisenberg) - - Claude Khedhiri (ck-developer) - - Benjamin Georgeault (wedgesama) - - Desjardins Jérôme (jewome62) - - Arturs Vonda - - Matthew Smeets - - Toni Rudolf (toooni) - - Stefan Gehrig (sgehrig) - - vagrant - - Matthias Krauser (mkrauser) - - Benjamin Cremer (bcremer) - - Maarten de Boer (mdeboer) - - Asier Illarramendi (doup) - - AKeeman (akeeman) - - Martijn Cuppens - - Restless-ET - - Vlad Gregurco (vgregurco) - - Artem Stepin (astepin) - - Jérémy DECOOL (jdecool) - - Boris Vujicic (boris.vujicic) - - Dries Vints - - Judicaël RUFFIEUX (axanagor) - - Chris Sedlmayr (catchamonkey) - - DerManoMann - - Jérôme Tanghe (deuchnord) - - Mathias STRASSER (roukmoute) - - simon chrzanowski (simonch) - - Kamil Kokot (pamil) - - Seb Koelen + - Laszlo Korte + - Diego Agulló (aeoris) + - Valmonzo + - Matthew Lewinski (lewinski) + - Soner Sayakci + - Jan Böhmer + - Hassan Amouhzi + - a.dmitryuk + - Yannick Ihmels (ihmels) + - Endre Fejes + - Vincent Chalamon + - Philippe Segatori + - Raffaele Carelle + - Link1515 + - Anthon Pang (robocoder) + - Thibaut Cheymol (tcheymol) + - Ricard Clau (ricardclau) + - Issam Raouf (iraouf) - Christoph Mewes (xrstf) - - Andrew M-Y (andr) - - Krasimir Bosilkov (kbosilkov) - - Marcin Michalski (marcinmichalski) - - Vitaliy Tverdokhlib (vitaliytv) - - Ariel Ferrandini (aferrandini) - - BASAK Semih (itsemih) - - Dirk Pahl (dirkaholic) - - Cédric Lombardot (cedriclombardot) - - Jérémy REYNAUD (babeuloula) - - Faizan Akram Dar (faizanakram) - - Arkadius Stefanski (arkadius) - - Andy Palmer (andyexeter) - - Jonas Flodén (flojon) - - AnneKir - - Tobias Weichart - - Arnaud POINTET (oipnet) - - Tristan Pouliquen - - Miro Michalicka - - Hans Mackowiak - - M. Vondano - - Dominik Zogg - - Maximilian Zumbansen - - Vadim Borodavko (javer) - - Tavo Nieves J (tavoniievez) - - Luc Vieillescazes (iamluc) - - Erik Saunier (snickers) - - François Dume (franek) - - Jerzy Lekowski (jlekowski) - - Raulnet - - Petrisor Ciprian Daniel - - Oleksiy (alexndlm) - - William Arslett (warslett) - - Giso Stallenberg (gisostallenberg) - - Rob Bast - - Roberto Espinoza (respinoza) - - Steven RENAUX (steven_renaux) - - Marvin Feldmann (breyndotechse) - - Soufian EZ ZANTAR (soezz) - - Marek Zajac - - Adam Harvey - - Klaus Silveira (klaussilveira) - - ilyes kooli (skafandri) - - Anton Bakai - - battye - - Nicolas Dousson - - Axel Guckelsberger (guite) - - Sam Fleming (sam_fleming) - - Alex Bakhturin - - Belhassen Bouchoucha (crownbackend) - - Patrick Reimers (preimers) - - Brayden Williams (redstar504) - - insekticid - - Jérémy M (th3mouk) - - Trent Steel (trsteel88) - - boombatower - - Alireza Mirsepassi (alirezamirsepassi) - - Jérôme Macias (jeromemacias) - - Andrey Astakhov (aast) - - ReenExe - - Fabian Lange (codingfabian) - - kylekatarnls (kylekatarnls) - - Yoshio HANAWA - - Jan van Thoor (janvt) - - Joshua Nye - - Martin Kirilov (wucdbm) - Koen Reiniers (koenre) - Kurt Thiemann - - Nathan Dench (ndenc2) - Gijs van Lammeren + - ilyes kooli (skafandri) + - Alireza Mirsepassi (alirezamirsepassi) - Sebastian Bergmann + - Giso Stallenberg (gisostallenberg) + - Adam Harvey - Nadim AL ABDOU (nadim) - Matthew Grasmick - - Miroslav Šustek (sustmi) - Pablo Díez (pablodip) - - Kevin McBride + - Romain Gautier (mykiwi) - Sergio Santoro - Jonas Elfering - - Philipp Rieber (bicpi) - - Dmitriy Derepko - - Manuel de Ruiter (manuel) - - Nathanael Noblet (gnat) - nikos.sotiropoulos - - BENOIT POLASZEK (bpolaszek) + - Yoshio HANAWA - Eduardo Oliveira (entering) - Oleksii Zhurbytskyi + - Bahman Mehrdad (bahman) - Bilge - - Anatoly Pashin (b1rdex) - - Jonathan Johnson (jrjohnson) - - Eugene Wissner - - Ricardo Oliveira (ricardolotr) - - Roy Van Ginneken (rvanginneken) - - ondrowan + - Trent Steel (trsteel88) - Barry vd. Heuvel (barryvdh) + - Ricardo Oliveira (ricardolotr) + - Jonathan Johnson (jrjohnson) + - Nicolas Dewez (nicolas_dewez) - Antonin CLAUZIER (0x346e3730) - - Chad Sikorra (chadsikorra) + - Jeroen Thora (bolle) + - Marek Zajac + - Markus Lanthaler (lanthaler) + - Greg ORIOL + - Leevi Graham (leevigraham) + - Zbigniew Malcherczyk (ferror) + - Roy Van Ginneken (rvanginneken) + - Nathan Dench (ndenc2) + - Denis Kulichkin (onexhovia) + - Adam Szaraniec + - Anatoly Pashin (b1rdex) + - Soufian EZ ZANTAR (soezz) + - Patrick Reimers (preimers) + - BENOIT POLASZEK (bpolaszek) + - Marvin Feldmann (breyndotechse) - Evan S Kaufman (evanskaufman) - mcben + - Klaus Silveira (klaussilveira) + - Roberto Espinoza (respinoza) + - Rob Bast + - Grummfy (grummfy) - Jérôme Vieilledent (lolautruche) - Roman Anasal - Filip Procházka (fprochazka) - Sergey Panteleev - - Jeroen Thora (bolle) - - Markus Lanthaler (lanthaler) - Gigino Chianese (sajito) - Remi Collet - Piotr Kugla (piku235) - Vicent Soria Durá (vicentgodella) - - Michael Moravec - - Leevi Graham (leevigraham) - Anthony Ferrara - tim - Ioan Negulescu - - Greg ORIOL - Jakub Škvára (jskvara) - Andrew Udvare (audvare) - siganushka (siganushka) - - alexpods - Quentin Schuler (sukei) - - Adam Szaraniec - Dariusz Ruminski - - Bahman Mehrdad (bahman) - - Romain Gautier (mykiwi) - Matthieu Bontemps - Erik Trapman - De Cock Xavier (xdecock) - - Zbigniew Malcherczyk (ferror) - - Nicolas Dewez (nicolas_dewez) - - Denis Kulichkin (onexhovia) - Scott Arciszewski - - Xavier HAUSHERR - - Norbert Orzechowicz (norzechowicz) - - Robert-Jan de Dreu - - Fabrice Bernhard (fabriceb) + - R. Achmad Dadang Nur Hidayanto (dadangnh) + - Bhavinkumar Nakrani (bhavin4u) - Matthijs van den Bos (matthijs) + - Peter Bowyer (pbowyer) - Markus S. (staabm) + - John Bafford (jbafford) - PatNowak - - Bhavinkumar Nakrani (bhavin4u) - - Jaik Dean (jaikdean) + - Samuele Lilli (doncallisto) + - Chad Sikorra (chadsikorra) + - William Arslett (warslett) + - Dave Hulbert (dave1010) + - Marcin Chyłek (songoq) - Krzysztof Piasecki (krzysztek) + - Oleksiy (alexndlm) + - Denis Gorbachev (starfall) + - Jerzy Lekowski (jlekowski) + - François Dume (franek) - Pavel Popov (metaer) + - Fabrice Bernhard (fabriceb) - Lenard Palko + - Jaik Dean (jaikdean) - Nils Adermann (naderman) + - Joachim Løvgaard (loevgaard) + - Tavo Nieves J (tavoniievez) + - Vadim Borodavko (javer) + - Maximilian Zumbansen + - Anton Bakai - Tom Klingenberg - Gábor Fási - - R. Achmad Dadang Nur Hidayanto (dadangnh) + - Gawain Lynch (gawain) + - Ivan Rey (ivanrey) - Nate (frickenate) - Stefan Kruppa - Jacek Jędrzejewski (jacek.jedrzejewski) - Shakhobiddin - - Stefan Kruppa - - Joachim Løvgaard (loevgaard) - sasezaki - Dawid Pakuła (zulusx) + - Dominik Zogg + - M. Vondano - Florian Rey (nervo) - - Peter Bowyer (pbowyer) - Rodrigo Borrego Bernabé (rodrigobb) - - John Bafford (jbafford) - - Emanuele Iannone - - Petr Duda (petrduda) - Marcos Rezende (rezende79) - - Denis Gorbachev (starfall) + - Petr Duda (petrduda) - Martin Morávek (keeo) - - Kevin Saliou (kbsali) - Steven Surowiec (steves) - Shawn Iwinski - - Dieter - - Samuele Lilli (doncallisto) - - Gawain Lynch (gawain) - mmokhi + - Kevin McBride - Ryan - Alexander Deruwe (aderuwe) - - Dave Hulbert (dave1010) - - Ivan Rey (ivanrey) - - Johan Vlaar (johjohan) + - Hans Mackowiak - M. (mbontemps) - - Marcin Chyłek (songoq) - Ned Schwartz - - Ziumin - Daniel Tiringer - - Lenar Lõhmus - Ilija Tovilo (ilijatovilo) - - Maxime Pinot (maximepinot) - Sander Toonen (xatoo) + - Guilherme Ferreira - Zach Badgett (zachbadgett) - Loïc Faugeron + - Miro Michalicka - Aurélien Fredouelle - Pavel Campr (pcampr) - - Andrii Dembitskyi - - Markus Staab - Forfarle (forfarle) - - Johnny Robeson (johnny) + - Yi-Jyun Pan + - Tobias Weichart + - Maxime Pinot (maximepinot) + - AnneKir + - W0rma + - Jonas Flodén (flojon) - Disquedur - - Guilherme Ferreira + - Andrii Dembitskyi - Geoffrey Tran (geoff) - Jannik Zschiesche - Bernd Stellwag - Jan Ole Behrens (deegital) - - wicliff wolda (wickedone) - - Mantas Var (mvar) - - Ramunas Pabreza (doobas) - - Yuriy Vilks (igrizzli) - - Terje Bråten - - Sebastian Krebs - - Piotr Stankowski - - Pierre-Emmanuel Tanguy (petanguy) - - Julien Maulny - - Gennadi Janzen - - johan Vlaar - - Paul Oms - - James Hemery - - wuchen90 - - Wouter van der Loop (toppy-hennie) - - Ninos - - julien57 - - Mátyás Somfai (smatyas) - - MrMicky - - Bastien DURAND (deamon) - - Dmitry Simushev - - alcaeus - - Simon Leblanc (leblanc_simon) - - Fred Cox - - Simon DELICATA - - Thibault Buathier (gwemox) - - Julien Boudry - - vitaliytv - - Franck RANAIVO-HARISOA (franckranaivo) - - Yi-Jyun Pan - - Egor Taranov - - Arnaud Frézet - - Philippe Segatori - - Jon Gotlin (jongotlin) - - Adrian Nguyen (vuphuong87) - - benjaminmal - - Roy de Vos Burchart - - Andrey Sevastianov - - Oleksandr Barabolia (oleksandrbarabolia) - - Khoo Yong Jun - - Christin Gruber (christingruber) - - Sebastian Blum - - Daniel González (daniel.gonzalez) - - Julien Turby - - Ricky Su (ricky) - - scyzoryck - - Kyle Evans (kevans91) - - Max Rath (drak3) - - Cristoforo Cervino (cristoforocervino) - - marie - - Stéphane Escandell (sescandell) - - Fractal Zombie - - James Johnston - - Noémi Salaün (noemi-salaun) - - Sinan Eldem (sineld) - - Gennady Telegin - - Benedikt Lenzen (demigodcode) - - ampaze - - Alexandre Dupuy (satchette) - - Michel Hunziker - - Malte Blättermann - - Ilya Levin (ilyachase) - - Simeon Kolev (simeon_kolev9) - - Joost van Driel (j92) - - Jonas Elfering - - Mihai Stancu - - Nahuel Cuesta (ncuesta) - - Chris Boden (cboden) - - EStyles (insidestyles) - - Christophe Villeger (seragan) - - Krystian Marcisz (simivar) - - Julien Fredon - - Xavier Leune (xleune) - - Hany el-Kerdany - - Wang Jingyu - - Baptiste CONTRERAS - - Åsmund Garfors - - Maxime Douailin - - Jean Pasdeloup - - Maxime COLIN (maximecolin) - - Loïc Ovigne (oviglo) - - Lorenzo Millucci (lmillucci) - - Javier López (loalf) - - Reinier Kip - - Jérôme Tamarelle (jtamarelle-prismamedia) - - Emil Masiakowski - - Geoffrey Brier (geoffrey-brier) - - Sofien Naas + - Markus Staab + - BASAK Semih (itsemih) + - Ariel Ferrandini (aferrandini) + - Johnny Robeson (johnny) + - Robert-Jan de Dreu + - Petrisor Ciprian Daniel + - Vitaliy Tverdokhlib (vitaliytv) + - Marcin Michalski (marcinmichalski) + - Cédric Lombardot (cedriclombardot) + - Krasimir Bosilkov (kbosilkov) + - Luc Vieillescazes (iamluc) + - Andrew M-Y (andr) + - Faizan Akram Dar (faizanakram) + - Martin Kirilov (wucdbm) + - Dirk Pahl (dirkaholic) + - Arkadius Stefanski (arkadius) + - Kamil Kokot (pamil) + - Raulnet + - simon chrzanowski (simonch) + - Chris Sedlmayr (catchamonkey) + - Arnaud POINTET (oipnet) + - Mathias STRASSER (roukmoute) + - Erik Saunier (snickers) + - Jérémy DECOOL (jdecool) + - DerManoMann + - Jérémy REYNAUD (babeuloula) + - Judicaël RUFFIEUX (axanagor) + - Andy Palmer (andyexeter) + - Dries Vints + - Boris Vujicic (boris.vujicic) + - Vlad Gregurco (vgregurco) + - Artem Stepin (astepin) + - Martijn Cuppens + - Asier Illarramendi (doup) + - Brayden Williams (redstar504) + - Maarten de Boer (mdeboer) + - Jérôme Tanghe (deuchnord) + - Benjamin Cremer (bcremer) + - vagrant + - Stefan Gehrig (sgehrig) + - Arturs Vonda + - Desjardins Jérôme (jewome62) + - Claude Khedhiri (ck-developer) + - Laurent Masforné (heisenberg) + - Maxim Dovydenok (dovydenok-maxim) + - Ioan Ovidiu Enache (ionutenache) + - Ivan Nikolaev (destillat) + - Emanuele Iannone + - Angelov Dejan (angelov) + - Tri Pham (phamuyentri) + - lancergr + - AKeeman (akeeman) + - Sergey Melesh (sergex) + - Arnaud De Abreu (arnaud-deabreu) + - Jérémy M (th3mouk) + - Erkhembayar Gantulga (erheme318) + - Neil Peyssard (nepey) + - Gunnstein Lye (glye) + - Toni Rudolf (toooni) + - Lescot Edouard (idetox) + - Andreas Hennings + - Matthias Krauser (mkrauser) + - Kevin Saliou (kbsali) + - Mark Challoner (markchalloner) + - Florian Merle (florian-merle) + - Niklas Fiekas + - Mohammad Emran Hasan (phpfour) + - Greg Anderson + - Markus Bachmann (baachi) + - Jan Schumann + - Dmitriy Mamontov (mamontovdmitriy) + - Benjamin Georgeault (wedgesama) + - Dennis Fridrich (dfridrich) + - Benjamin Zaslavsky (tiriel) + - Gildas Quéméner (gquemener) + - Restless-ET + - Mokhtar Tlili (sf-djuba) + - Ziumin + - Maelan LE BORGNE + - Berny Cantos (xphere81) + - PHAS Developer + - Thomas Talbot (ioni) + - Christian Gripp (core23) + - geoffrey + - Alexandru Furculita (afurculita) + - Johan Vlaar (johjohan) + - Chris Tanaskoski (devristo) + - quentin neyrat (qneyrat) + - Brian King + - Nicolas Rigaud + - Marcin Szepczynski (czepol) + - Valentin Jonovs + - Ben Ramsey (ramsey) + - Tobias Bönner + - Steffen Roßkamp + - Benjamin (yzalis) + - Ben Roberts (benr77) + - Antonio Jose Cerezo (ajcerezo) + - Webnet team (webnet) + - Ahmed Ghanem (ahmedghanem00) + - Andrey Lebedev (alebedev) + - Jeanmonod David (jeanmonod) + - Benoit Galati (benoitgalati) + - Quentin Dequippe (qdequippe) + - Matthew Smeets + - Michael Moravec + - Andrey Astakhov (aast) + - Eugene Wissner + - Norbert Orzechowicz (norzechowicz) + - lenar + - Xavier HAUSHERR + - Matheo Daninos (mathdns) + - battye + - Max Baldanza + - Steven RENAUX (steven_renaux) + - Philipp Rieber (bicpi) + - Manuel de Ruiter (manuel) + - Michel Salib (michelsalib) + - Jérôme Macias (jeromemacias) + - Axel Guckelsberger (guite) + - Alex Bakhturin + - Belhassen Bouchoucha (crownbackend) + - Sam Fleming (sam_fleming) + - Joshua Nye + - boombatower + - ReenExe + - Fabian Lange (codingfabian) + - kylekatarnls (kylekatarnls) + - Miroslav Šustek (sustmi) + - Jan van Thoor (janvt) - Alexandre Parent + - Sofien Naas - Daniel Badura + - Loïc Ovigne (oviglo) - Brajk19 + - Dustin Dobervich (dustin10) + - Martijn Evers - Roger Guasch (rogerguasch) + - Vladimir Varlamov (iamvar) - DT Inier (gam6itko) - - Dustin Dobervich (dustin10) - Luis Tacón (lutacon) - Dmitrii Tarasov (dtarasov) - - dantleech - Philipp Kolesnikov - - Jack Worman (jworman) - Sebastian Marek (proofek) - - Carlos Pereira De Amorim (epitre) - zenmate - - Andrii Popov (andrii-popov) - - David Fuhr - Malte Müns - Rodrigo Aguilera - - Vladimir Varlamov (iamvar) - Aurimas Niekis (gcds) - - Matthieu Calie (matth--) + - andrey1s + - Fabien Salles (blacked) - Sem Schidler (xvilo) - Benjamin Schoch (bschoch) - - Martins Sipenko - - Guilherme Augusto Henschel - Rostyslav Kinash + - Marc Abramowitz + - Rimas Kudelis - Christophe V. (cvergne) - Mardari Dorel (dorumd) - - Daisuke Ohata - Vincent Simonin - Pierrick VIGNAND (pierrick) - - Alex Bogomazov (alebo) - aaa2000 (aaa2000) - Andrew Neil Forster (krciga22) - Stefan Warman (warmans) @@ -1074,2108 +955,583 @@ The Symfony Connect username in parenthesis allows to get more information - Behnoush Norouzali (behnoush) - Marko H. Tamminen (gzumba) - Wesley Lancel - - Xavier Briand (xavierbriand) - - Ke WANG (yktd26) + - katario - Ivo Bathke (ivoba) + - Ke WANG (yktd26) + - 243083df + - Luca Saba (lucasaba) - Lukas Mencl + - Emil Einarsson + - Mickaël Isaert (misaert) - David Molineus - - Strate + - Gregor Nathanael Meyer (spackmat) + - Florent Viel (luxifer) - Anton A. Sumin - - Marko Petrovic + - Don Pinkster + - Miquel Rodríguez Telep (mrtorrent) + - Andreas Erhard (andaris) - alexandre.lassauge + - Guillaume Aveline - Israel J. Carberry - - Miquel Rodríguez Telep (mrtorrent) + - Michael Devery (mickadoo) - Tamás Nagy (t-bond) + - Kieran + - Robin van der Vleuten (robinvdvleuten) + - Kien Nguyen - Sergey Kolodyazhnyy (skolodyazhnyy) - umpirski - Quentin de Longraye (quentinus95) - Chris Heng (gigablah) - Mickaël Buliard (mbuliard) + - Michael Roterman (wtfzdotnet) + - Morten Wulff (wulff) - Jan Nedbal - Cornel Cruceru (amne) - Richard Bradley - Jan Walther (janwalther) - - Ulumuddin Cahyadi Yunus (joenoez) - rtek - - Mickaël Isaert (misaert) - Adrien Jourdier (eclairia) - Florian Pfitzer (marmelatze) + - Alaattin Kahramanlar (alaattin) - Ivan Grigoriev (greedyivan) + - ornicar - Johann Saunier (prophet777) - Kevin SCHNEKENBURGER - Geordie - - Fabien Salles (blacked) - Tim Düsterhus - - Andreas Erhard (andaris) - - alexpozzi - - Michael Devery (mickadoo) - - Gregor Nathanael Meyer (spackmat) - Antoine Corcy - Ahmed Ashraf (ahmedash95) - Gert Wijnalda (cinamo) - Aurimas Niekis (aurimasniekis) - - Luca Saba (lucasaba) - Sascha Grossenbacher (berdir) - - Guillaume Aveline - nathanpage + - _sir_kane (waly) - Robin Lehrmann - - Szijarto Tamas - Thomas P + - Steve Grunwell - Stephan Vock (glaubinix) - Jaroslav Kuba - - Benjamin Zikarsky (bzikarsky) - Kristijan Kanalaš (kristijan_kanalas_infostud) + - Benjamin Zikarsky (bzikarsky) - Rodrigo Méndez (rodmen) + - Oriol Viñals + - michaelwilliams + - Maks 3w (maks3w) - sl_toto (sl_toto) + - Sascha Dens (saschadens) + - Renan Gonçalves (renan_saddam) + - Matt Janssen - Marek Pietrzak (mheki) - “Filip - - Mickaël Andrieu (mickaelandrieu) + - Tristan Roussel + - RJ Garcia + - Jawira Portugal (jawira) + - Joschi Kuphal + - Oliver Hoff - Simon Watiau (simonwatiau) - - Ruben Jacobs (rubenj) + - Benjamin Grandfond (benjamin) - Simon Schick (simonsimcity) - - Tristan Roussel - - NickSdot + - Ruben Jacobs (rubenj) + - Toon Verwerft (veewee) + - Delf Tonder (leberknecht) + - Thomas Ploch - Niklas Keller - - Alexandre parent + - Douglas Hammond (wizhippo) - Cameron Porter - Hossein Bukhamsin - - Oliver Hoff - Christian Sciberras (uuf6429) - Thomas Nunninger - origaminal - Matteo Beccati (matteobeccati) - - Renan Gonçalves (renan_saddam) - Vitaliy Ryaboy (vitaliy) - Kevin (oxfouzer) - Paweł Wacławczyk (pwc) - Oleg Zinchenko (cystbear) - Baptiste Meyer (meyerbaptiste) - Tales Santos (tsantos84) - - Tomasz Kusy - - Johannes Klauss (cloppy) - Evan Villemez + - Alexander Miehe + - Morgan Auchede - fzerorubigd - - Thomas Ploch - - Benjamin Grandfond (benjamin) - Tiago Brito (blackmx) - Gintautas Miselis (naktibalda) - Richard van den Brand (ricbra) - - Toon Verwerft (veewee) - develop - - flip111 - - Douglas Hammond (wizhippo) - - VJ - - RJ Garcia - Adrien Lucas (adrienlucas) - - Jawira Portugal (jawira) - - Delf Tonder (leberknecht) - - Ondrej Exner - Mark Sonnabaum - Chris Jones (magikid) - Massimiliano Braglia (massimilianobraglia) - - Thijs-jan Veldhuizen (tjveldhuizen) + - Alexandre parent + - Jakub Podhorsky (podhy) + - Jean-Baptiste GOMOND (mjbgo) + - Dmytro Boiko (eagle) + - Daniël Brekelmans (dbrekelmans) + - Andreas Leathley (iquito) - Richard Quadling - James Hudson (mrthehud) + - Roland Franssen :) - Raphaëll Roussel + - Simon Heimberg (simon_heimberg) + - Sergey Zolotov (enleur) + - Benoît Bourgeois (bierdok) - Michael Lutz - jochenvdv + - Andrew Codispoti + - mweimerskirch + - Sebastian Grodzicki (sgrodzicki) + - Jan Kramer - Oriol Viñals + - Jay Klehr - Reedy + - Simo Heinonen (simoheinonen) - Arturas Smorgun (asarturas) - Aleksandr Volochnev (exelenz) - - Robin van der Vleuten (robinvdvleuten) + - grizlik + - Thijs-jan Veldhuizen (tjveldhuizen) + - wanxiangchwng - Grinbergs Reinis (shima5) + - Vladimir Luchaninov (luchaninov) + - NanoSector + - bogdan - Michael Piecko (michael.piecko) + - Julien DIDIER (juliendidier) - Toni Peric (tperic) - - yclian - - Nicolas DOUSSON + - Wybren Koelmans (wybren_koelmans) + - Davide Borsatto (davide.borsatto) - radar3301 - - Aleksey Prilipko - Jelle Raaijmakers (gmta) - - Andrew Berry - - Sylvain BEISSIER (sylvain-beissier) - - Wybren Koelmans (wybren_koelmans) - Roberto Nygaard - - victor-prdh - - Davide Borsatto (davide.borsatto) - - Florian Hermann (fhermann) - Vitaliy Zhuk (zhukv) + - mwsaz - zenas1210 - Gert de Pagter - - Julien DIDIER (juliendidier) + - Jason Woods + - Andrii Popov (andrii-popov) - Ворожцов Максим (myks92) - Randy Geraads - Kevin van Sonsbeek (kevin_van_sonsbeek) - - Simo Heinonen (simoheinonen) - - Jay Klehr - - Andreas Leathley (iquito) - - Vladimir Luchaninov (luchaninov) - - Sebastian Grodzicki (sgrodzicki) - Mohamed Gamal - Eric COURTIAL - Xesxen - - Jeroen van den Enden (endroid) - Arun Philip + - flip111 + - Baldur Rensch (brensch) - Pascal Helfenstein - Jesper Skytte (greew) - - NanoSector + - Stéphan Kochen - Petar Obradović - - Baldur Rensch (brensch) - - Carl Casbolt (carlcasbolt) + - Konstantin Grachev (grachevko) + - Alex (garrett) + - yclian + - David Marín Carreño (davefx) + - Tarjei Huse (tarjei) + - Paweł Niedzielski (steveb) + - stoccc - Jiri Barous + - Simon Mönch - Vladyslav Petrovych + - Robert Fischer (sandoba) + - Jörn Lang + - Amr Ezzat (amrezzat) + - Maksim Kotlyar (makasim) + - arai + - Carl Casbolt (carlcasbolt) + - Simon (kosssi) + - Derek ROTH + - Benjamin Laugueux + - Jose Gonzalez + - Moshe Weitzman (weitzman) - Loïc Chardonnet - - Alex Xandra Albert Sim - - Sergey Yastrebov - Carson Full (carsonfull) - - Steve Grunwell - - Yuen-Chi Lian + - Sergey Yastrebov + - Alex Xandra Albert Sim - Mathias Brodala (mbrodala) - - Robert Fischer (sandoba) - - Tarjei Huse (tarjei) - Travis Carden (traviscarden) - - mfettig - Besnik Br - - Simon Mönch - - Valmonzo - Sherin Bloemendaal - - Jose Gonzalez - Jonathan (jlslew) - Claudio Zizza - aegypius - Ilia (aliance) - - Christian Stoller (naitsirch) - COMBROUSE Dimitri - Dave Marshall (davedevelopment) - Jakub Kulhan (jakubkulhan) - - Paweł Niedzielski (steveb) - Shaharia Azam - avorobiev - Gerben Oolbekkink - Gladhon - Maximilian.Beckers + - skmedix (skmedix) + - Shin Ohno (ganchiku) + - Gabrielle Langer + - Lctrs - Alex Kalineskou + - Calin Mihai Pristavu - Evan Shaw - - stoccc - Grégoire Penverne (gpenverne) - Venu - Ryan Hendrickson - Damien Fa - Jonatan Männchen + - Carlos Buenosvinos (carlosbuenosvinos) - Dennis Hotson - - Andrew Tchircoff (andrewtch) - Lars Vierbergen (vierbergenlars) + - Sander De la Marche (sanderdlm) + - Gálik Pál + - Marco Lipparini (liarco) + - Korvin Szanto - Xav` (xavismeh) - Barney Hanlon + - Adrian Günter (adrianguenter) + - Jordan Deitch - Thorry84 - Romanavr - - michaelwilliams - - Alexandre Parent - - 1emming + - Seb Koelen + - Hidde Boomsma (hboomsma) - Eric Abouaf (neyric) - - Nykopol (nykopol) - - Thibault Richard (t-richard) - - Jordan Deitch - - Casper Valdemar Poulsen + - Daniel González (daniel.gonzalez) + - Ondrej Machulda (ondram) + - Alexander Grimalovsky (flying) + - Yosmany Garcia (yosmanyga) + - Thomas Durand - Guillaume Verstraete - - vladimir.panivko + - izzyp + - Fabien LUCAS (flucas2) + - Jon Dufresne - Oliver Hader + - Gustavo Falco (gfalco) - Josiah (josiah) + - Thomas Trautner (thomastr) - Dennis Væversted (srnzitcom) + - Jason Tan (jt2k) - AndrolGenhald + - Thibault Richard (t-richard) - Asier Etxebeste - - Joschi Kuphal - - John Bohn (jbohn) - - Jason Tan (jt2k) + - Matt Robinson (inanimatt) + - Alexander Li (aweelex) - Edvin Hultberg - shubhalgupta - Felds Liscia (felds) - Benjamin Lebon - - Alexander Grimalovsky (flying) - Andrew Hilobok (hilobok) - Noah Heck (myesain) - - Sébastien JEAN (sebastien76) + - Benoît Merlet (trompette) - Christian Soronellas (theunic) - - Max Baldanza - Volodymyr Panivko + - Patrick Allaert + - Kristof Van Cauwenbergh (kristofvc) - kick-the-bucket - - Thomas Durand - fedor.f - - Yosmany Garcia (yosmanyga) - Jeremiasz Major - - Jibé Barth (jibbarth) - Trevor North - Degory Valentine - - izzyp + - Laurent Bassin (lbassin) - Jeroen Fiege (fieg) - Martin (meckhardt) - Wu (wu-agriconomie) - Marcel Hernandez - Evan C + - Geert De Deckere - buffcode + - abdul malik ikhsan (samsonasik) - Glodzienski - - Natsuki Ikeguchi + - Ivan Menshykov + - Sinan Eldem (sineld) - Krzysztof Łabuś (crozin) - Xavier Lacot (xavier) - - Jon Dufresne - - possum + - Maxim Tugaev (tugmaks) - Denis Zunke (donalberto) - Adrien Roches (neirda24) - - Thomas Trautner (thomastr) - - _sir_kane (waly) + - Nicolas Dousson - Olivier Maisonneuve - - Gálik Pál + - Christian Stoller (naitsirch) - Bálint Szekeres - Andrei C. (moldman) - Mike Meier (mykon) - - Pedro Miguel Maymone de Resende (pedroresende) + - Vincent Composieux (eko) + - VJ + - Jordi Sala Morales (jsala) + - Tamas Szijarto - stlrnz - - Masterklavi + - Quentin Dreyer (qkdreyer) + - Vincent CHALAMON + - Sébastien JEAN (sebastien76) - Adrien Wilmet (adrienfr) + - Pedro Miguel Maymone de Resende (pedroresende) + - Johnny Peck (johnnypeck) + - Gerard van Helden (drm) + - Cyril Quintin (cyqui) - Franco Traversaro (belinde) + - Tomasz Ignatiuk - Francis Turmel (fturmel) - Kagan Balga (kagan-balga) - Nikita Nefedov (nikita2206) - Alex Bacart - StefanoTarditi - - cgonzalez - - hugovms - - Ben - - Vincent Composieux (eko) + - ampaze - Cyril Pascal (paxal) - Pedro Casado (pdr33n) - - Jayson Xu (superjavason) - acoulton + - Guilherme Augusto Henschel + - Tomasz Kusy - DemigodCode - fago - Jan Prieser + - Johannes Klauss (cloppy) - Maximilian Bösing - Matt Johnson (gdibass) - Zhuravlev Alexander (scif) - Stefano Degenkamp (steef) - James Michael DuPont - Tinjo Schöni - - Carlos Buenosvinos (carlosbuenosvinos) - Jake (jakesoft) - Rustam Bakeev (nommyde) - - Vincent CHALAMON - Ivan Kurnosov + - DUPUCH (bdupuch) - Christopher Hall (mythmakr) - Patrick Dawkins (pjcdawkins) + - Artur Eshenbrener + - Florian Wolfsjaeger (flowolf) - Paul Kamer (pkamer) + - MrMicky - Rafał Wrzeszcz (rafalwrzeszcz) - Reyo Stallenberg (reyostallenberg) + - Thibault Buathier (gwemox) - Nguyen Xuan Quynh - - Reen Lokum - Dennis Langen (nijusan) - - Quentin Dreyer (qkdreyer) + - Andreas Lutro (anlutro) + - Christin Gruber (christingruber) - Francisco Alvarez (sormes) - Martin Parsiegla (spea) - - Maxim Tugaev (tugmaks) - - ywisax - Manuel Alejandro Paz Cetina + - Rootie - Denis Charrier (brucewouaigne) + - Roy Klutman (royklutman) + - Nicole Cordes (ichhabrecht) + - Matthieu Calie (matth--) + - Ulumuddin Cahyadi Yunus (joenoez) + - alexpozzi + - NickSdot - Youssef Benhssaien (moghreb) - Mario Ramundo (rammar) - - Ivan - - Nico Haase - - Philipp Scheit (pscheit) - - Pierre Vanliefland (pvanliefland) - - Roy Klutman (royklutman) + - David Romaní - Sofiane HADDAG (sofhad) - - Antoine M - - frost-nzcr4 - - Shahriar56 - - Dhananjay Goratela - - Kien Nguyen - - Bozhidar Hristov - - Oriol Viñals - - arai - - Achilles Kaloeridis (achilles) - - Sébastien Despont (bouillou) - - Laurent Bassin (lbassin) - - Mouad ZIANI (mouadziani) - - Tomasz Ignatiuk - - andrey1s - - Abhoryo - - louismariegaborit - - Fabian Vogler (fabian) - - Korvin Szanto - - Stéphan Kochen - - Arjan Keeman - - Alaattin Kahramanlar (alaattin) - - Sergey Zolotov (enleur) - - Nicole Cordes (ichhabrecht) - - Maksim Kotlyar (makasim) - - Thibaut THOUEMENT (thibaut_thouement) - - Neil Ferreira - - Julie Hourcade (juliehde) - - Dmitry Parnas (parnas) - - Loïc Beurlet - - Ana Raro - - Ana Raro + - Casper Valdemar Poulsen + - Andrew Berry - Tony Malzhacker - - Cosmin Sandu - - Andreas Lutro (anlutro) - - DUPUCH (bdupuch) - - Cyril Quintin (cyqui) - - Gerard van Helden (drm) - - Florent Destremau (florentdestremau) - - Florian Wolfsjaeger (flowolf) - - Johnny Peck (johnnypeck) - - Jordi Sala Morales (jsala) - - Sander De la Marche (sanderdlm) - - skmedix (skmedix) - - Loic Chardonnet - - Ivan Menshykov - - David Romaní - - Patrick Allaert - - Alexander Li (aweelex) - - Gustavo Falco (gfalco) - - Matt Robinson (inanimatt) - - Kristof Van Cauwenbergh (kristofvc) - - Marco Lipparini (liarco) - - Aleksey Podskrebyshev - - Calin Mihai Pristavu - - Gabrielle Langer - - Jörn Lang - - Adrian Günter (adrianguenter) - - Amr Ezzat (amrezzat) - - David Marín Carreño (davefx) - - Fabien LUCAS (flucas2) - - Alex (garrett) - - Konstantin Grachev (grachevko) - - Hidde Boomsma (hboomsma) - - Ondrej Machulda (ondram) - - Jason Woods - - mwsaz - - bogdan - - wanxiangchwng - - Geert De Deckere - - grizlik - - Derek ROTH - - Jeremy Benoist - - Ben Johnson - - Jan Kramer - - mweimerskirch - - Andrew Codispoti - - Benjamin Laugueux - - Lctrs - - Benoît Bourgeois (bierdok) - - Dmytro Boiko (eagle) - - Shin Ohno (ganchiku) + - Loïc Beurlet + - mfettig + - John Bohn (jbohn) + - hugovms + - Ben + - Andrew Tchircoff (andrewtch) + - Natsuki Ikeguchi + - Jesper Noordsij + - Adán Lobato (adanlobato) + - Neil Ferreira - Matthieu Mota (matthieumota) - - Jean-Baptiste GOMOND (mjbgo) - - Jakub Podhorsky (podhy) - - abdul malik ikhsan (samsonasik) - - Henry Snoek (snoek09) - - Morgan Auchede - - Christian Morgan - - Alexander Miehe - - Daniël Brekelmans (dbrekelmans) - - Simon (kosssi) - - Sascha Dens (saschadens) - - Simon Heimberg (simon_heimberg) - - Morten Wulff (wulff) - - Kieran - - Don Pinkster - Maksim Muruev - - Emil Einarsson - - 243083df - - Thibault Duplessis - - katario - - Rimas Kudelis - - Marc Abramowitz - - Matthias Schmidt - - Martijn Evers - - Tony Tran - - Balazs Csaba - - Bill Hance (billhance) - - Douglas Reith (douglas_reith) - - Harry Walter (haswalt) - - Jacques MOATI (jmoati) - - Johnson Page (jwpage) - - Kuba Werłos (kuba) - - Ruben Gonzalez (rubenruateltek) - - Michael Roterman (wtfzdotnet) - - Philipp Keck - - Pavol Tuka - - Arno Geurts - - Adán Lobato (adanlobato) + - datibbaw + - Daniel Alejandro Castro Arellano (lexcast) + - Ondrej Exner + - Masterklavi + - vladimir.panivko + - Sébastien Santoro (dereckson) + - Ian Irlen + - Marko Petrovic + - Matthieu Bontemps + - Stephan Vierkant (svierkant) + - Thiago Cordeiro (thiagocordeiro) + - Ana Raro + - Koen Kuipers (koku) + - Ana Raro + - Dragos Protung (dragosprotung) + - Carlos Quintana + - Mouad ZIANI (mouadziani) + - Jibé Barth (jibbarth) + - Dmitry Parnas (parnas) + - Brad Jones - Ian Jenkins (jenkoian) - - Marcos Gómez Vilches (markitosgv) - - Matthew Davis (mdavis1982) - - Paulo Ribeiro (paulo) - - Marc Laporte - - Michał Jusięga - - Kay Wei - - Dominik Ulrich - - den - - Gábor Tóth - - Bastien THOMAS - - ouardisoft - - Daniel Cestari - - Matt Janssen - - Stéphane Delprat - - Mior Muhammad Zaki (crynobone) - - Elan Ruusamäe (glen) - - Brunet Laurent (lbrunet) - - Florent Viel (luxifer) - - Maks 3w (maks3w) - - Michiel Boeckaert (milio) - - Mikhail Yurasov (mym) - Robert Gruendler (pulse00) - - Sebastian Paczkowski (sebpacz) - Simon Terrien (sterrien) - - Stephan Vierkant (svierkant) - - Benoît Merlet (trompette) - - Brad Jones - - datibbaw - - Dragos Protung (dragosprotung) - - Koen Kuipers (koku) + - Sebastian Paczkowski (sebpacz) - Nicolas de Marqué (nicola) - - Thiago Cordeiro (thiagocordeiro) - - Matthieu Bontemps - - Ian Irlen - - Rootie - - Sébastien Santoro (dereckson) - - Daniel Alejandro Castro Arellano (lexcast) - - Jiří Bok - - Vincent Chalamon - - Farhad Hedayatifard - - Alan ZARLI - - Thomas Jarrand - - Baptiste Leduc (bleduc) - - soyuka - - Piotr Zajac - - Patrick Kaufmann - - Ismail Özgün Turan (dadeather) - - Mickael Perraud - - Anton Dyshkant - - Rafael Villa Verde - - Zoran Makrevski (zmakrevski) - - Yann LUCAS (drixs6o9) - - Kirill Nesmeyanov (serafim) - - Reece Fowell (reecefowell) - - Muhammad Aakash - - Charly Goblet (_mocodo) - - Htun Htun Htet (ryanhhh91) - - Guillaume Gammelin - - Valérian Galliat - - Sorin Pop (sorinpop) - - Elías Fernández - - d-ph - - Stewart Malik - - Frank Schulze (xit) - - Renan Taranto (renan-taranto) - - Ninos Ego - - Samael tomas - - Stefan Graupner (efrane) - - Gemorroj (gemorroj) - - Adrien Chinour - - Jonas Claes - - Mateusz Żyła (plotkabytes) - - Rikijs Murgs - - WoutervanderLoop.nl - - Mihail Krasilnikov (krasilnikovm) - - Uladzimir Tsykun - - iamvar - - Amaury Leroux de Lens (amo__) - - Rene de Lima Barbosa (renedelima) - - Christian Jul Jensen - - Lukas Kaltenbach - - Alexandre GESLIN - - The Whole Life to Learn - - Pierre Tondereau - - Joel Lusavuvu (enigma97) - - Valentin Barbu (jimie) - - Alex Vo (votanlean) - - Mikkel Paulson - - ergiegonzaga - - André Matthies - - kurozumi (kurozumi) - - Nicolas Lemoine - - Piergiuseppe Longo - - Kevin Auivinet - - Liverbool (liverbool) - - Valentin Nazarov - - Dalibor Karlović - - Aurélien MARTIN - - Malte Schlüter - - Jules Matsounga (hyoa) - - Yewhen Khoptynskyi (khoptynskyi) - - Nicolas Attard (nicolasattard) - - Jérôme Nadaud (jnadaud) - - Frank Naegler - - Sam Malone - - Damien Fernandes - - Ha Phan (haphan) - - Chris Jones (leek) - - neghmurken - - stefan.r - - Florian Cellier - - xaav - - Jean-Christophe Cuvelier [Artack] - - Mahmoud Mostafa (mahmoud) - - Alexandre Tranchant (alexandre_t) - - Anthony Moutte - - Ahmed Abdou - - shreyadenny - - Daniel Iwaniec - - Thomas Ferney (thomasf) - - Pieter - - Louis-Proffit - - Dennis Tobar - - Michael Tibben - - Hallison Boaventura (hallisonboaventura) - - Mas Iting - - Billie Thompson - - Albion Bame (abame) - - Ganesh Chandrasekaran (gxc4795) - - Sander Marechal - - Ivan Nemets - - Grégoire Hébert (gregoirehebert) - - Franz Wilding (killerpoke) - - Ferenczi Krisztian (fchris82) - - Artyum Petrov - - Oleg Golovakhin (doc_tr) - - Guillaume Smolders (guillaumesmo) - - Icode4Food (icode4food) - - Radosław Benkel - - Bert ter Heide (bertterheide) - - Kevin Nadin (kevinjhappy) - - jean pasqualini (darkilliant) - - Iliya Miroslavov Iliev (i.miroslavov) - - Safonov Nikita (ns3777k) - - Ross Motley (rossmotley) - - ttomor - - Mei Gwilym (meigwilym) - - Michael H. Arieli - - Miloš Milutinović - - Jitendra Adhikari (adhocore) - - Kevin Jansen - - Nicolas Martin (cocorambo) - - Tom Panier (neemzy) + - Mikhail Yurasov (mym) + - Fabian Vogler (fabian) + - Brunet Laurent (lbrunet) + - Elan Ruusamäe (glen) + - Mior Muhammad Zaki (crynobone) + - Julie Hourcade (juliehde) + - Henry Snoek (snoek09) + - Wouter van der Loop (toppy-hennie) + - Adam + - johan Vlaar + - Ivan + - Jeroen van den Enden (endroid) + - Mantas Var (mvar) + - Pierre Vanliefland (pvanliefland) + - Nico Haase + - frost-nzcr4 + - wuchen90 + - Philipp Scheit (pscheit) + - SpacePossum + - Arjan Keeman + - Arnaud Frézet + - Terje Bråten + - Sylvain BEISSIER (sylvain-beissier) + - Bozhidar Hristov + - Thibaut THOUEMENT (thibaut_thouement) + - Cosmin Sandu + - wicliff wolda (wickedone) + - Florent Destremau (florentdestremau) + - Stéphane Delprat + - Andreas Braun + - James Hemery + - Michiel Boeckaert (milio) + - Bastien DURAND (deamon) + - Daniel Cestari + - Mátyás Somfai (smatyas) + - ouardisoft + - Sebastian Krebs + - Mickaël Andrieu (mickaelandrieu) + - Daisuke Ohata + - Simon Leblanc (leblanc_simon) + - Paul Oms + - Egor Taranov + - Piotr Stankowski + - Bastien THOMAS + - Gábor Tóth + - Yuriy Vilks (igrizzli) + - Ramunas Pabreza (doobas) + - Achilles Kaloeridis (achilles) + - den + - Pierre-Emmanuel Tanguy (petanguy) + - Julien Maulny + - Gennadi Janzen + - Shahriar56 + - julien57 - Fred Cox - - luffy1727 - - Luciano Mammino (loige) - - LHommet Nicolas (nicolaslh) - - fabios - - eRIZ - - Sander Coolen (scoolen) - - Vic D'Elfant (vicdelfant) - - Amirreza Shafaat (amirrezashafaat) - - Laurent Clouet - - Adoni Pavlakis (adoni) - - Nicolas Le Goff (nlegoff) - - Maarten Nusteling (nusje2000) - - Peter van Dommelen - - Anne-Sophie Bachelard - - Gordienko Vladislav - - Ahmed EBEN HASSINE (famas23) - - Marvin Butkereit - - Ben Oman - - Chris de Kok - - Eduard Bulava (nonanerz) - - Andreas Kleemann (andesk) - - Hubert Moreau (hmoreau) - - Nicolas Appriou - - Silas Joisten (silasjoisten) - - Igor Timoshenko (igor.timoshenko) - - Pierre-Emmanuel CAPEL - - Manuele Menozzi - - Yevhen Sidelnyk - - “teerasak” - - Anton Babenko (antonbabenko) - - Irmantas Šiupšinskas (irmantas) - - Benoit Mallo - - Charles-Henri Bruyand - - Danilo Silva - - Giuseppe Campanelli - - Valentin - - pizzaminded - - Nicolas Valverde - - Konstantin S. M. Möllers (ksmmoellers) - - Ken Stanley - - ivan - - Zachary Tong (polyfractal) - - linh - - Oleg Krasavin (okwinza) - - Mario Blažek (marioblazek) - - Jure (zamzung) - - Michael Nelson - - Ashura - - Hryhorii Hrebiniuk - - Nsbx - - Eric Krona - - Alex Plekhanov - - johnstevenson - - hamza - - dantleech - - Kajetan Kołtuniak (kajtii) - - Dan (dantleech) - - Sander Goossens (sandergo90) - - Rudy Onfroy - - Tero Alén (tero) - - DerManoMann - - Damien Fayet (rainst0rm) - - MatTheCat - - Guillaume Royer - - Erfan Bahramali - - Artem (digi) - - boite - - Silvio Ginter - - Peter Culka - - MGDSoft - - Abdiel Carrazana (abdielcs) - - joris - - Vadim Tyukov (vatson) - - alanzarli - - Arman - - Gabi Udrescu - - Adamo Crespi (aerendir) - - David Wolter (davewww) - - Sortex - - chispita - - Wojciech Sznapka - - Emmanuel Dreyfus - - Luis Pabon (luispabon) - - boulei_n - - Anna Filina (afilina) - - Gavin (gavin-markup) - - Ksaveras Šakys (xawiers) - - Shaun Simmons - - Ariel J. Birnbaum - - Yannick - - Patrick Luca Fazzi (ap3ir0n) - - Tim Lieberman - - Danijel Obradović - - Pablo Borowicz - - Ondřej Frei - - Bruno Rodrigues de Araujo (brunosinister) - - Máximo Cuadros (mcuadros) - - Arkalo2 - - Jacek Wilczyński (jacekwilczynski) - - Christoph Kappestein - - Camille Baronnet - - EXT - THERAGE Kevin - - tamirvs - - gauss - - julien.galenski - - Florian Guimier - - Maxime PINEAU - - Igor Kokhlov (verdet) - - Christian Neff (secondtruth) - - Chris Tiearney - - Oliver Hoff - - Minna N - - Ole Rößner (basster) - - andersmateusz - - Laurent Moreau - - Faton (notaf) - - Tom Houdmont - - tamar peled - - mark burdett - - Per Sandström (per) - - Goran Juric - - Laurent G. (laurentg) - - Jean-Baptiste Nahan - - Thomas Decaux - - Nicolas Macherey - - Asil Barkin Elik (asilelik) - - Bhujagendra Ishaya - - Guido Donnari - - Jérôme Dumas - - Mert Simsek (mrtsmsk0) - - Lin Clark - - Christophe Meneses (c77men) - - Jeremy David (jeremy.david) - - Andrei O - - gr8b - - Michał Marcin Brzuchalski (brzuchal) - - Jordi Rejas - - Troy McCabe - - Ville Mattila - - gstapinato - - gr1ev0us - - Léo VINCENT - - mlazovla - - Alejandro Diaz Torres - - Bradley Zeggelaar - - Karl Shea - - Valentin - - Markus Baumer - - Max Beutel - - adnen chouibi - - Nathan Sepulveda - - Łukasz Chruściel (lchrusciel) - - Jan Vernieuwe (vernija) - - Antanas Arvasevicius - - Adam Kiss - - Pierre Dudoret - - Michal Trojanowski - - Thomas - - j.schmitt - - Georgi Georgiev - - Norbert Schultheisz - - Maximilian Berghoff (electricmaxxx) - - SOEDJEDE Felix (fsoedjede) - - Evgeny Anisiforov - - otsch - - TristanPouliquen - - Dominic Luidold - - Piotr Antosik (antek88) - - Nacho Martin (nacmartin) - - Thomas Bibaut - - Thibaut Chieux - - mwos - - Aydin Hassan - - Volker Killesreiter (ol0lll) - - Vedran Mihočinec (v-m-i) - - Rafał Treffler - - Sergey Novikov (s12v) - - creiner - - Jan Pintr - - ProgMiner - - Marcos Quesada (marcos_quesada) - - Matthew (mattvick) - - MARYNICH Mikhail (mmarynich-ext) - - Viktor Novikov (nowiko) - - Paul Mitchum (paul-m) - - Angel Koilov (po_taka) - - RevZer0 (rav) - - Yura Uvarov (zim32) - - Dan Finnie - - remieuronews - - Marek Binkowski - - Ken Marfilla (marfillaster) - - Max Grigorian (maxakawizard) - - allison guilhem - - benatespina (benatespina) - - Denis Kop - - Fabrice Locher - - Konstantin Chigakov - - Kamil Szalewski (szal1k) - - Jean-Guilhem Rouel (jean-gui) - - Yoann MOROCUTTI - - Ivan Yivoff - - EdgarPE - - jfcixmedia - - Dominic Tubach - - Martijn Evers - - Alexander Onatskiy - - Philipp Fritsche - - Léon Gersen - - tarlepp - - Giuseppe Arcuti - - Dustin Wilson - - Benjamin Paap (benjaminpaap) - - Claus Due (namelesscoder) - - Christian - - Alexandru Patranescu - - Sébastien Lévêque (legenyes) - - ju1ius - - Denis Golubovskiy (bukashk0zzz) - - Arkadiusz Rzadkowolski (flies) - - Serge (nfx) - - Oksana Kozlova (oksanakozlova) - - Quentin Moreau (sheitak) - - Mikkel Paulson - - Michał Strzelecki - - Bert Ramakers - - Hugo Fonseca (fonsecas72) - - Marc Duboc (icemad) - - uncaught - - Martynas Narbutas - - Timothée BARRAY - - Nilmar Sanchez Muguercia - - Pierre LEJEUNE (darkanakin41) - - Bailey Parker - - curlycarla2004 - - Javier Ledezma - - Kevin Auvinet - - Antanas Arvasevicius - - Kris Kelly - - Eddie Abou-Jaoude (eddiejaoude) - - Haritz Iturbe (hizai) - - Nerijus Arlauskas (nercury) - - Stanislau Kviatkouski (7-zete-7) - - Rutger Hertogh - - Diego Sapriza - - Joan Cruz - - inspiran - - Alex Demchenko - - Richard van Velzen - - Cristobal Dabed - - Daniel Mecke (daniel_mecke) - - Matteo Giachino (matteosister) - - Serhii Polishchuk (spolischook) - - Tadas Gliaubicas (tadcka) - - Thanos Polymeneas (thanos) - - Atthaphon Urairat - - Benoit Garret - - HellFirePvP - - Maximilian Ruta (deltachaos) - - Jon Green (jontjs) - - Jakub Sacha - - Julius Kiekbusch - - Kamil Musial - - Lucas Bustamante - - Olaf Klischat - - Andrii - - orlovv - - Claude Dioudonnat - - Jonathan Hedstrom - - Peter Smeets (darkspartan) - - Julien Bianchi (jubianchi) - - Michael Dawart (mdawart) - - Robert Meijers - - Tijs Verkoyen - - James Sansbury - - Marcin Chwedziak - - Dan Kadera - - hjkl - - Dan Wilga - - Thijs Reijgersberg - - Florian Heller - - Oleksii Svitiashchuk - - Andrew Tch - - Alexander Cheprasov - - Tristan Bessoussa (sf_tristanb) - - Rodrigo Díez Villamuera (rodrigodiez) - - Brad Treloar - - pritasil - - Stephen Clouse - - e-ivanov - - Nathanaël Martel (nathanaelmartel) - - Nicolas Jourdan (nicolasjc) - - Benjamin Dos Santos - - Abderrahman DAIF (death_maker) - - Yann Rabiller (einenlum) - - GagnarTest (gagnartest) - - Jochen Bayer (jocl) - - Tomas Javaisis - - Constantine Shtompel - - VAN DER PUTTE Guillaume (guillaume_vdp) - - Patrick Carlo-Hickman - - Bruno MATEU - - Jeremy Bush - - Lucas Bäuerle - - Laurens Laman - - Thomason, James - - Dario Savella - - Gordienko Vladislav - - Joas Schilling - - Ener-Getick - - Markus Thielen - - Peter Trebaticky - - Moza Bogdan (bogdan_moza) - - Viacheslav Sychov - - Zuruuh - - Nicolas Sauveur (baishu) - - Helmut Hummel (helhum) - - Matt Brunt - - David Vancl - - Carlos Ortega Huetos - - Péter Buri (burci) - - Evgeny Efimov (edefimov) - - jack.thomas (jackthomasatl) - - John VanDeWeghe - - kaiwa - - Charles Sanquer (csanquer) - - Albert Ganiev (helios-ag) - - Neil Katin - - Oleg Mifle - - V1nicius00 - - David Otton - - Will Donohoe - - peter - - Tugba Celebioglu - - Jeroen de Boer - - Oleg Sedinkin (akeylimepie) - - Jérémy Jourdin (jjk801) - - BRAMILLE Sébastien (oktapodia) - - Artem Kolesnikov (tyomo4ka) - - Markkus Millend - - Clément - - Gustavo Adrian - - Jorrit Schippers (jorrit) - - Yann (yann_eugone) - - Matthias Neid - - danilovict2 - - Yannick - - Kuzia - - spdionis - - maxime.perrimond - - rchoquet - - v.shevelev - - rvoisin - - Dan Brown - - gitlost - - Taras Girnyk - - Simon Mönch - - Barthold Bos - - cthulhu - - Andoni Larzabal (andonilarz) - - Wolfgang Klinger (wolfgangklingerplan2net) - - Staormin - - Dmitry Derepko - - Rémi Leclerc - - Jan Vernarsky - - Ionut Cioflan - - John Edmerson Pizarra - - Sergio - - Jonas Hünig - - Mehrdad - - Amine Yakoubi - - Eduardo García Sanz (coma) - - Arend Hummeling - - Makdessi Alex - - Dmitrii Baranov - - fduch (fduch) - - Juan Miguel Besada Vidal (soutlink) - - Takashi Kanemoto (ttskch) - - Aleksei Lebedev - - dlorek - - Stuart Fyfe - - Jason Schilling (chapterjason) - - David de Boer (ddeboer) - - Eno Mullaraj (emullaraj) - - Guillem Fondin (guillemfondin) - - Nathan PAGE (nathix) - - Ryan Rogers - - Arnaud - - Klaus Purer - - Dmitrii Lozhkin - - Gilles Doge (gido) - - Marion Hurteau (marionleherisson) - - Oscar Esteve (oesteve) - - Sobhan Sharifi (50bhan) - - Peter Potrowl - - abulford - - Philipp Kretzschmar - - Jairo Pastor - - Ilya Vertakov - - Brooks Boyd - - Axel Venet - - Stephen - - Roger Webb - - Dmitriy Simushev - - Pawel Smolinski - - Yury (daffox) - - John Espiritu (johnillo) - - Tomasz (timitao) - - Nguyen Tuan Minh (tuanminhgp) - - Oxan van Leeuwen - - pkowalczyk - - dbrekelmans - - Mykola Zyk - - Soner Sayakci - - Max Voloshin (maxvoloshin) - - Nicolas Fabre (nfabre) - - Raul Rodriguez (raul782) - - Piet Steinhart - - mousezheng - - Radoslaw Kowalewski - - mshavliuk - - Rémy LESCALLIER - - MightyBranch - - Kacper Gunia (cakper) - - Derek Lambert (dlambert) - - Mark Pedron (markpedron) - - Peter Thompson (petert82) - - Victor Macko (victor_m) - - Ismail Turan - - error56 - - Felicitus - - Jorge Vahldick (jvahldick) - - Krzysztof Przybyszewski (kprzybyszewski) - - Vladimir Mantulo (mantulo) - - Boullé William (williamboulle) - - Jesper Noordsij - - Bart Baaten - - Frederic Godfrin - - Paul Matthews - - aim8604 - - Jakub Kisielewski - - Vacheslav Silyutin - - Aleksandr Dankovtsev - - Maciej Zgadzaj - - Juan Traverso - - David Legatt (dlegatt) - - Alain Flaus (halundra) - - Arthur Woimbée - - tsufeki - - Théo DELCEY - - Philipp Strube - - Wim Hendrikx - - Andrii Serdiuk (andreyserdjuk) - - Clement Herreman (clemherreman) - - dangkhoagms (dangkhoagms) - - Dan Ionut Dumitriu (danionut90) - - Evgeny (disparity) - - Floran Brutel (notFloran) (floran) - - Vladislav Rastrusny (fractalizer) - - Vlad Gapanovich (gapik) - - Alexander Kurilo (kamazee) - - nyro (nyro) - - Konstantin Bogomolov - - Marco - - Marc Torres - - Mark Spink - - gndk - - Alberto Aldegheri - - Dalibor Karlović - - Cesar Scur (cesarscur) - - Cyril Vermandé (cyve) - - Daniele Orru' (danydev) - - Raul Garcia Canet (juagarc4) - - Sagrario Meneses - - Dmitri Petmanson - - heccjj - - Alexandre Melard - - Rafał Toboła - - Dominik Schwind (dominikschwind) - - Stefano A. (stefano93) - - PierreRebeilleau - - AlbinoDrought - - Sergey Yuferev - - Monet Emilien - - voodooism - - Tobias Stöckler - - Mario Young - - martkop26 - - Raphaël Davaillaud - - Sander Hagen - - Alexander Menk - - cilefen (cilefen) - - Prasetyo Wicaksono (jowy) - - Mo Di (modi) - - Victor Truhanovich (victor_truhanovich) - - Pablo Schläpfer - - Christian Rishøj - - Nikos Charalampidis - - Caligone - - Roromix - - Patrick Berenschot - - SuRiKmAn - - Xavier RENAUDIN - - rtek - - Christian Wahler (christian) - - Jelte Steijaert (jelte) - - Maxime AILLOUD (mailloud) - - David Négrier (moufmouf) - - Quique Porta (quiqueporta) - - Tobias Feijten (tobias93) - - mohammadreza honarkhah - - Jessica F Martinez - - paullallier - - Artem Oliinyk (artemoliynyk) - - Andrea Quintino (dirk39) - - Andreas Heigl (heiglandreas) - - Tomasz Szymczyk (karion) - - Peter Dietrich (xosofox) - - Alex Vasilchenko - - sez-open - - fruty - - ConneXNL - - Aharon Perkel - - matze - - Adam Wójs (awojs) - - Justin Reherman (jreherman) - - Rubén Calvo (rubencm) - - Abdul.Mohsen B. A. A - - Cédric Girard - - Peter Jaap Blaakmeer - - Robert Worgul - - Swen van Zanten - - Agustin Gomes - - pthompson - - Malaney J. Hill - - Patryk Kozłowski - - Alexandre Pavy - - Tim Ward - - Adiel Cristo (arcristo) - - Christian Flach (cmfcmf) - - Dennis Jaschinski (d.jaschinski) - - Fabian Kropfhamer (fabiank) - - Jeffrey Cafferata (jcidnl) - - Junaid Farooq (junaidfarooq) - - Lars Ambrosius Wallenborn (larsborn) - - Pavel Starosek (octisher) - - Oriol Mangas Abellan (oriolman) - - Sebastian Göttschkes (sgoettschkes) - - Marcin Nowak - - Frankie Wittevrongel - - Tatsuya Tsuruoka - - Ross Tuck - - omniError - - Zander Baldwin - - László GÖRÖG - - djordy - - Kévin Gomez (kevin) - - Mihai Nica (redecs) - - Andrei Igna - - Adam Prickett - - azine - - Luke Towers - - Wojciech Zimoń - - Vladimir Melnik - - Anton Kroshilin - - Pierre Tachoire - - Dawid Sajdak - - Maxime THIRY - - Norman Soetbeer - - Ludek Stepan - - Benjamin BOUDIER - - Frederik Schwan - - Mark van den Berg - - Aaron Stephens (astephens) - - Craig Menning (cmenning) - - Balázs Benyó (duplabe) - - Erika Heidi Reinaldo (erikaheidi) - - William Thomson (gauss) - - Javier Espinosa (javespi) - - Marc J. Schmidt (marcjs) - - František Maša - - Sebastian Schwarz - - Flohw - - karolsojko - - Marco Jantke - - Saem Ghani - - Claudiu Cristea - - Zacharias Luiten - - Sebastian Utz - - Adrien Gallou (agallou) - - Andrea Sprega (asprega) - - Maks Rafalko (bornfree) - - Conrad Kleinespel (conradk) - - Clément LEFEBVRE (nemoneph) - - Viktor Bajraktar (njutn95) - - Walter Dal Mut (wdalmut) - - abluchet - - Ruud Arentsen - - Harald Tollefsen - - PabloKowalczyk - - Matthieu - - ZiYao54 - - Arend-Jan Tetteroo - - Albin Kerouaton - - Sébastien HOUZÉ - - sebastian - - Mbechezi Nawo - - wivaku - - Markus Reinhold - - Jingyu Wang - - es - - steveYeah - - Asrorbek (asrorbek) - - Samy D (dinduks) - - Keri Henare (kerihenare) - - Andre Eckardt (korve) - - Cédric Lahouste (rapotor) - - Samuel Vogel (samuelvogel) - - Osayawe Ogbemudia Terry (terdia) - - Berat Doğan - - Christian Kolb - - Guillaume LECERF - - Alan Scott - - Juanmi Rodriguez Cerón - - twifty - - David Szkiba - - Andy Raines - - François Poguet - - Anthony Ferrara - - Geoffrey Pécro (gpekz) - - Klaas Cuvelier (kcuvelier) - - Flavien Knuchel (knuch) - - Mathieu TUDISCO (mathieutu) - - Dmytro Dzubenko - - Martijn Croonen - - Peter Ward - - markusu49 - - Steve Frécinaux - - Constantine Shtompel - - Jules Lamur - - Renato Mendes Figueiredo - - xdavidwu - - Benjamin RICHARD - - Raphaël Droz - - Vladimir Pakhomchik - - pdommelen - - Eric Stern - - ShiraNai7 - - Cedrick Oka - - Antal Áron (antalaron) - - Guillaume Sainthillier (guillaume-sainthillier) - - Ivan Pepelko (pepelko) - - Vašek Purchart (vasek-purchart) - - Janusz Jabłoński (yanoosh) - - Jens Hatlak - - Fleuv - - Tayfun Aydin - - Łukasz Makuch - - Arne Groskurth - - Ilya Chekalsky - - Ostrzyciel - - George Giannoulopoulos - - Thibault G - - Alexander Pasichnik (alex_brizzz) - - Felix Eymonot (hyanda) - - Luis Ramirez (luisdeimos) - - Ilia Sergunin (maranqz) - - Daniel Richter (richtermeister) - - Sandro Hopf (senaria) - - ChrisC - - André Laugks - - jack.shpartko - - Willem Verspyck - - Kim Laï Trinh - - Johan de Ruijter - - InbarAbraham - - Jason Desrosiers - - m.chwedziak - - marbul - - Filippos Karailanidis - - Andreas Frömer - - Jeroen Bouwmans - - Bikal Basnet - - Philip Frank - - David Brooks - - Lance McNearney - - Illia Antypenko (aivus) - - Jelizaveta Lemeševa (broken_core) - - Dominik Ritter (dritter) - - Frank Neff (fneff) - - Volodymyr Kupriienko (greeflas) - - Ilya Biryukov (ibiryukov) - - Mathieu Ledru (matyo91) - - Roma (memphys) - - Jozef Môstka (mostkaj) - - Florian Caron (shalalalala) - - Serhiy Lunak (slunak) - - Wojciech Błoszyk (wbloszyk) - - Giorgio Premi - - Matthias Bilger - - abunch - - tamcy - - Lukas Naumann - - Mikko Pesari - - Krzysztof Pyrkosz - - Aurélien Fontaine - - ncou - - Ian Carroll - - Dennis Fehr - - caponica - - jdcook - - 🦅KoNekoD - - Daniel Kay (danielkay-cp) - - Matt Daum (daum) - - Malcolm Fell (emarref) - - Alberto Pirovano (geezmo) - - inwebo veritas (inwebo) - - Pascal Woerde (pascalwoerde) - - Pete Mitchell (peterjmit) - - phuc vo (phucwan) - - Tom Corrigan (tomcorrigan) - - Luis Galeas - - Bogdan Scordaliu - - Sven Scholz - - Martin Pärtel - - Daniel Rotter (danrot) - - Frédéric Bouchery (fbouchery) - - Jacek Kobus (jackks) - - Patrick Daley (padrig) - - Phillip Look (plook) - - Foxprodev - - Artfaith - - Tom Kaminski - - developer-av - - Max Summe - - Ema Panz - - Hugo Sales - - Dale.Nash - - DidierLmn - - Pedro Silva - - Chihiro Adachi (chihiro-adachi) - - Clément R. (clemrwan) - - Jeroen de Graaf - - Hossein Hosni - - Ulrik McArdle - - BiaDd - - Oleksii Bulba - - Ramon Cuñat - - mboultoureau - - Raphaëll Roussel - - Vitalii - - Tadcka - - Bárbara Luz - - Abudarham Yuval - - Beth Binkovitz - - adhamiamirhossein - - Maxim Semkin - - Gonzalo Míguez - - Jan Vernarsky - - BrokenSourceCode - - Fabian Haase - - roog - - parinz1234 - - seho-nl - - Romain Geissler - - Martin Auswöger - - Adrien Moiruad - - Viktoriia Zolotova - - Tomaz Ahlin - - Nasim - - Randel Palu - - Anamarija Papić (anamarijapapic) - - AnotherSymfonyUser (arderyp) - - Marcus Stöhr (dafish) - - Daniel González Zaballos (dem3trio) - - Emmanuel Vella (emmanuel.vella) - - Giuseppe Petraroli (gpetraroli) - - Guillaume BRETOU (guiguiboy) - - Ibon Conesa (ibonkonesa) - - Yoann Chocteau (kezaweb) - - Nikita Popov (nikic) - - nuryagdy mustapayev (nueron) - - Carsten Nielsen (phreaknerd) - - Valérian Lepeule (vlepeule) - - Michael Olšavský - - Jay Severson - - Benny Born - - Vincent Vermeulen - - Stefan Moonen - - Emirald Mateli - - Robert - - Ivan Tse - - René Kerner - - Nathaniel Catchpole - - Jontsa - - Igor Plantaš - - upchuk - - Adrien Samson (adriensamson) - - Samuel Gordalina (gordalina) - - Maksym Romanowski (maxromanovsky) - - Nicolas Eeckeloo (neeckeloo) - - Andriy Prokopenko (sleepyboy) - - Dariusz Ruminski - - Starfox64 - - Ivo Valchev - - Thomas Hanke - - ffd000 - - Daniel Tschinder - - Arnaud CHASSEUX - - Zlatoslav Desyatnikov - - Wickex - - tuqqu - - Wojciech Gorczyca - - Ahmad Al-Naib - - Neagu Cristian-Doru (cristian-neagu) - - Mathieu Morlon (glutamatt) - - NIRAV MUKUNDBHAI PATEL (niravpatel919) - - Owen Gray (otis) - - Rafał Muszyński (rafmus90) - - Sébastien Decrême (sebdec) - - Timothy Anido (xanido) - - Robert-Jan de Dreu - - Mara Blaga - - Rick Prent - - skalpa - - Kai - - Bartłomiej Zając - - Pieter Jordaan - - Tournoud (damientournoud) - - Michael Dowling (mtdowling) - - Karlos Presumido (oneko) - - Pierre Foresi (pforesi) - - Tony Vermeiren (tony) - - Bart Wach - - Jos Elstgeest - - Kirill Lazarev - - Thomas Counsell - - Joe - - BilgeXA - - mmokhi - - Serhii Smirnov - - Robert Queck - - Peter Bouwdewijn - - Kurt Thiemann - - Martins Eglitis - - Daniil Gentili - - Eduard Morcinek - - Wouter Diesveld - - Romain - - Matěj Humpál - - Kasper Hansen - - Nico Hiort af Ornäs - - Eddy - - Amine Matmati - - Kristen Gilden - - caalholm - - Nouhail AL FIDI (alfidi) - - Fabian Steiner (fabstei) - - Felipy Amorim (felipyamorim) - - Guillaume Loulier (guikingone) - - Michael Lively (mlivelyjr) - - Pierre Grimaud (pgrimaud) - - Abderrahim (phydev) - - Attila Bukor (r1pp3rj4ck) - - Thomas Boileau (tboileau) - - Alexander Janssen (tnajanssen) - - Thomas Chmielowiec (chmielot) - - Jānis Lukss - - simbera - - Julien BERNARD - - Michael Zangerle - - rkerner - - Alex Silcock - - Raphael Hardt - - Ivan Nemets - - Dave Long - - Qingshan Luo - - Michael Olšavský - - Ergie Gonzaga - - Matthew J Mucklo - - AnrDaemon - - SnakePin - - Matthew Covey - - Tristan Kretzer - - Adriaan Zonnenberg - - Charly Terrier (charlypoppins) - - Dcp (decap94) - - Emre Akinci (emre) - - Rachid Hammaoui (makmaoui) - - Chris Maiden (matason) - - psampaz (psampaz) - - Andrea Ruggiero (pupax) - - Stan Jansen (stanjan) - - Maxwell Vandervelde - - karstennilsen - - kaywalker - - Sebastian Ionescu - - Robert Kopera - - Pablo Ogando Ferreira - - Thomas Ploch - - Victor Prudhomme - - Simon Neidhold - - Wouter Ras - - Gil Hadad - - Valentin VALCIU - - Jeremiah VALERIE - - Alexandre Beaujour - - Franck Ranaivo-Harisoa - - Grégoire Rabasse - - Cas van Dongen - - Patrik Patie Gmitter - - George Yiannoulopoulos - - Yannick Snobbert - - Kevin Dew - - James Cowgill - - Žan V. Dragan - - sensio - - Julien Menth (cfjulien) - - Lyubomir Grozdanov (lubo13) - - Nicolas Schwartz (nicoschwartz) - - Tim Jabs (rubinum) - - Schvoy Norbert (schvoy) - - Stéphane Seng (stephaneseng) - - Peter Schultz - - Robert Korulczyk - - Jonathan Gough - - Benhssaein Youssef - - Benoit Leveque - - bill moll - - chillbram - - Benjamin Bender - - PaoRuby - - Holger Lösken - - Bizley - - Jared Farrish - - Yohann Tilotti - - karl.rixon - - raplider - - Konrad Mohrfeldt - - Lance Chen - - Ciaran McNulty (ciaranmcnulty) - - Dominik Piekarski (dompie) - - Andrew (drew) - - j4nr6n (j4nr6n) - - Rares Sebastian Moldovan (raresmldvn) - - Stelian Mocanita (stelian) - - Gautier Deuette - - dsech - - wallach-game - - Gilbertsoft - - tadas - - Bastien Picharles - - Kirk Madera - - Linas Ramanauskas - - mamazu - - Keith Maika - - izenin - - Mephistofeles - - Oleh Korneliuk - - Emmanuelpcg - - Rini Misini - - Attila Szeremi - - Evgeny Ruban - - Hoffmann András - - LubenZA - - Victor Garcia - - Juan Mrad - - Denis Yuzhanin - - k-sahara - - Flavian Sierk - - Rik van der Heijden - - knezmilos13 - - Thomas Beaujean - - alireza - - Michael Bessolov - - sauliusnord - - Zdeněk Drahoš - - Dan Harper - - moldcraft - - Marcin Kruk - - Antoine Bellion (abellion) - - Ramon Kleiss (akathos) - - Alexey Buyanow (alexbuyanow) - - Antonio Peric-Mazar (antonioperic) - - César Suárez (csuarez) - - Bjorn Twachtmann (dotbjorn) - - Marek Víger (freezy) - - Goran (gog) - - Wahyu Kristianto (kristories) - - Tobias Genberg (lorceroth) - - Michael Simonson (mikes) - - Nicolas Badey (nico-b) - - Florent Blaison (orkin) - - Olivier Scherler (oscherler) - - Flo Gleixner (redflo) - - Romain Jacquart (romainjacquart) - - Shane Preece (shane) - - Stephan Wentz (temp) - - Johannes Goslar - - Mike Gladysch - - Geoff - - georaldc - - wusuopu - - Markus Staab - - Wouter de Wild - - Peter Potrowl - - povilas - - andreybolonin1989@gmail.com - - Gavin Staniforth - - bahram - - Alessandro Tagliapietra (alex88) - - Nikita Starshinov (biji) - - Alex Teterin (errogaht) - - Gunnar Lium (gunnarlium) - - Malte Wunsch (maltewunsch) - - Marie Minasyan (marie.minassyan) - - Pavel Stejskal (spajxo) - - Szymon Kamiński (szk) - - Tiago Garcia (tiagojsag) - - Artiom - - Jakub Simon - - TheMhv - - Eviljeks - - Juliano Petronetto - - robin.de.croock - - Brandon Antonio Lorenzo - - Bouke Haarsma - - Boris Medvedev - - mlievertz - - Radosław Kowalewski - - Enrico Schultz - - tpetry - - Nikita Sklyarov - - JustDylan23 - - Juraj Surman - - Martin Eckhardt - - natechicago - - DaikiOnodera - - Victor - - Andreas Allacher - - Abdelilah Jabri - - Alexis - - Leonid Terentyev - - Sergei Gorjunov - - Jonathan Poston - - Adrian Olek (adrianolek) - - Camille Dejoye (cdejoye) - - cybernet (cybernet2u) - - Jody Mickey (jwmickey) - - Przemysław Piechota (kibao) - - Martin Schophaus (m_schophaus_adcada) - - Martynas Sudintas (martiis) - - Anton Sukhachev (mrsuh) - - Pavlo Pelekh (pelekh) - - Stefan Kleff (stefanxl) - - RichardGuilland - - Marcel Siegert - - ryunosuke - - Bruno BOUTAREL - - Athorcis - - John Stevenson - - everyx - - Richard Heine - - Francisco Facioni (fran6co) - - Stanislav Gamaiunov (happyproff) - - Iwan van Staveren (istaveren) - - Alexander McCullagh (mccullagh) - - Paul L McNeely (mcneely) - - Povilas S. (povilas) - - Laurent Negre (raulnet) - - Sergey Fokin (tyraelqp) - - Victoria Quirante Ruiz (victoria) - - Evrard Boulou - - pborreli - - Ibrahim Bougaoua - - Boris Betzholz - - Eric Caron - - Arnau González - - GurvanVgx - - Jiri Falis - - 2manypeople - - Wing - - Thomas Bibb - - Stefan Koopmanschap - - George Sparrow - - Toro Hill - - Joni Halme - - Matt Farmer - - André Laugks - - catch - - aetxebeste - - Roberto Guido - - ElisDN - - roromix - - Vitali Tsyrkin - - Juga Paazmaya - - Alexandre Segura - - afaricamp - - Josef Cech - - riadh26 - - AntoineDly - - Konstantinos Alexiou - - Andrii Boiko - - Dilek Erkut - - mikocevar - - Harold Iedema - - WaiSkats - - Morimoto Ryosuke - - Ikhsan Agustian - - Benoit Lévêque (benoit_leveque) - - Bernat Llibre Martín (bernatllibre) - - Simon Bouland (bouland) - - Christoph König (chriskoenig) - - Dmytro Pigin (dotty) - - Abdouarrahmane FOUAD (fabdouarrahmane) - - Jakub Janata (janatjak) - - Jm Aribau (jmaribau) - - Maciej Paprocki (maciekpaprocki) - - Matthew Foster (mfoster) - - Paul Seiffert (seiffert) - - Vasily Khayrulin (sirian) - - Stas Soroka (stasyan) - - Thomas Dubuffet (thomasdubuffet) - - Stefan Hüsges (tronsha) - - Jake Bishop (yakobeyak) - - Dan Blows - - popnikos - - Matt Wells - - Nicolas Appriou - - Javier Alfonso Bellota de Frutos - - stloyd - - Tito Costa - - Andreas - - Chris Tickner - - Andrew Coulton - - Ulugbek Miniyarov - - Jeremy Benoist - - Antoine Beyet - - Michal Gebauer - - René Landgrebe - - Phil Davis - - Thiago Melo - - Gleb Sidora - - David Stone - - Giorgio Premi - - Gerhard Seidel (gseidel) - - Jovan Perovic (jperovic) - - Pablo Maria Martelletti (pmartelletti) - - Sebastian Drewer-Gutland (sdg) - - Sander van der Vlugt (stranding) - - casdal - - Florian Bogey - - Waqas Ahmed - - Bert Hekman - - Luis Muñoz - - Matthew Donadio - - Kris Buist - - Houziaux mike - - Phobetor - - Eric Schildkamp - - Yoann MOROCUTTI - - d.huethorst - - Markus - - Zayan Goripov - - agaktr - - Janusz Mocek - - Johannes - - Mostafa - - kernig - - Thomas Chmielowiec - - shdev - - Andrey Ryaguzov - - Gennadi Janzen - - SenTisso - - Stefan - - Peter Bex - - Manatsawin Hanmongkolchai - - Gunther Konig - - Joe Springe - - Mickael GOETZ - - Tobias Speicher - - Jesper Noordsij - - DerStoffel - - Flinsch - - Maciej Schmidt - - botbotbot - - tatankat - - Cláudio Cesar - - Sven Nolting - - Timon van der Vorm - - nuncanada - - Thierry Marianne - - František Bereň - - G.R.Dalenoort - - Jeremiah VALERIE - - Mike Francis - - Nil Borodulia - - Adam Katz - - Almog Baku (almogbaku) - - Boris Grishenko (arczinosek) - - Arrakis (arrakis) - - Danil Khaliullin (bifidokk) - - Benjamin Schultz (bschultz) - - Christian Grasso (chris54721) - - Vladimir Khramtsov (chrome) - - Gerd Christian Kunze (derdu) - - Stephanie Trumtel (einahp) - - Denys Voronin (hurricane) - - Ionel Scutelnicu (ionelscutelnicu) - - Jordan de Laune (jdelaune) - - Juan Gonzalez Montes (juanwilde) - - Kamil Madejski (kmadejski) - - Mathieu Dewet (mdewet) - - none (nelexa) - - Nicolas Tallefourtané (nicolab) - - Botond Dani (picur) - - Rémi Faivre (rfv) - - Radek Wionczek (rwionczek) - - tinect (tinect) - - Nick Stemerdink - - Bernhard Rusch - - David Stone - - Vincent Bouzeran - - fabi - - Grayson Koonce - - Ruben Jansen - - Wissame MEKHILEF - - Mihai Stancu - - shreypuranik - - Thibaut Salanon - - Romain Dorgueil - - Christopher Parotat - - Andrey Helldar - - Dennis Haarbrink - - Daniel Kozák - - Urban Suppiger - - 蝦米 - - Julius Beckmann (h4cc) - - Julien JANVIER (jjanvier) - - Karim Cassam Chenaï (ka) - - Lorenzo Adinolfi (loru88) - - Marcello Mönkemeyer (marcello-moenkemeyer) - - Ahmed Shamim Hassan (me_shaon) - - Michal Kurzeja (mkurzeja) - - Nicolas Bastien (nicolas_bastien) - - Nikola Svitlica (thecelavi) - - Andrew Zhilin (zhil) - - Sjors Ottjes - - azjezz - - VojtaB - - Andy Stanberry - - Felix Marezki - - Normunds - - Yuri Karaban - - Walter Doekes - - Johan - - Thomas Rothe - - Edwin - - Troy Crawford - - Kirill Roskolii - - Jeroen van den Nieuwenhuisen - - nietonfir - - Andriy - - Taylor Otwell - - alefranz - - David Barratt - - Andrea Giannantonio - - Pavel.Batanov - - avi123 - - Pavel Prischepa - - Philip Dahlstrøm - - Pierre Schmitz - - Sami Mussbach - - qzylalala - - alsar - - downace - - Aarón Nieves Fernández - - Mikolaj Czajkowski - - Ahto Türkson - - Paweł Stasicki - - Ph3nol - - Kirill Saksin - - Shiro - - Reda DAOUDI - - Koalabaerchen - - michalmarcinkowski - - Warwick - - Chris - - Farid Jalilov - - Christiaan Wiesenekker - - Ariful Alam - - Florent Olivaud - - Foxprodev - - Eric Hertwig - - JakeFr - - Dmitry Hordinky - - Oliver Klee - - Niels Robin-Aubertin - - Simon Sargeant - - efeen - - Mikko Ala-Fossi - - Jan Christoph Beyer - - withbest - - Nicolas Pion - - Muhammed Akbulut - - Daniel Tiringer - - Xesau - - Koray Zorluoglu - - Roy-Orbison - - Aaron Somi - - kshida - - Yasmany Cubela Medina (bitgandtter) - - Michał Dąbrowski (defrag) - - Aryel Tupinamba (dfkimera) - - Elías (eliasfernandez) - - Hans Höchtl (hhoechtl) - - Simone Fumagalli (hpatoio) - - Brian Graham (incognito) - - Kevin Vergauwen (innocenzo) - - Alessio Baglio (ioalessio) - - Johannes Müller (johmue) - - Jordi Llonch (jordillonch) - - julien_tempo1 (julien_tempo1) - - Roman Igoshin (masterro) - - Nicholas Ruunu (nicholasruunu) - - Pierre Rebeilleau (pierrereb) - - Milos Colakovic (project2481) - - Raphael de Almeida (raphaeldealmeida) - - Rénald Casagraude (rcasagraude) - - Robin Duval (robin-duval) - - Mohammad Ali Sarbanha (sarbanha) - - Sergii Dolgushev (sergii-swds) - - Steeve Titeca (stiteca) - - Thomas Citharel (tcit) - - Artem Lopata (bumz) - - Soha Jin - - alex - - Alex Niedre - - evgkord - - Roman Orlov - - Simon Ackermann - - Andreas Allacher - - VolCh - - Alexey Popkov - - Gijs Kunze - - Artyom Protaskin - - Steven Dubois - - Nathanael d. Noblet - - Yurun - - helmer - - ged15 - - Simon Asika - - CDR - - Daan van Renterghem - - Bálint Szekeres - - Boudry Julien - - amcastror - - Bram Van der Sype (brammm) - - Guile (guile) - - Mark Beech (jaybizzle) - - Julien Moulin (lizjulien) - - Raito Akehanareru (raito) - - Mauro Foti (skler) - - Thibaut Arnoud (thibautarnoud) - - Valmont Pehaut-Pietri (valmonzo) - - Yannick Warnier (ywarnier) - - Jörn Lang - - Kevin Decherf - - Paul LE CORRE - - Christian Weiske - - Maria Grazia Patteri - - klemens - - dened - - muchafm - - jpauli - - Dmitry Korotovsky - - Michael van Tricht - - ReScO - - Tim Strehle - - Sébastien COURJEAN - - cay89 - - Sam Ward - - Hans N. Hjort - - Marko Vušak - - Walther Lalk - - Adam - - Ivo - - vltrof - - Ismo Vuorinen - - Markus Staab - - Valentin - - Gerard - - Sören Bernstein - - michael.kubovic - - devel - - Iain Cambridge - - taiiiraaa - - Ali Tavafi - - gedrox - - Viet Pham - - Alan Bondarchuk - - Pchol - - Benjamin Ellis - - Shamimul Alam - - Cyril HERRERA - - dropfen - - RAHUL K JHA - - Andrey Chernykh - - Edvinas Klovas - - Drew Butler - - Peter Breuls - - Kevin EMO - - Chansig - - Tischoi - - divinity76 - - vdauchy - - Andreas Hasenack - - J Bruni - - Alexey Prilipko - - vlakoff - - Anthony Tenneriello - - thib92 - - Yiorgos Kalligeros - - Rudolf Ratusiński - - Bertalan Attila - - Arek Bochinski - - Rafael Tovar - - Amin Hosseini (aminh) - - AmsTaFF (amstaff) - - Simon Müller (boscho) - - Yannick Bensacq (cibou) - - Cyrille Bourgois (cyrilleb) - - Damien Vauchel (damien_vauchel) - - Dmitrii Fedorenko (dmifedorenko) - - William Pinaud (docfx) - - Frédéric G. Marand (fgm) - - Freek Van der Herten (freekmurze) - - Luca Genuzio (genuzio) - - Ben Gamra Housseine (hbgamra) - - Andrew Marcinkevičius (ifdattic) - - Ioana Hazsda (ioana-hazsda) - - Jan Marek (janmarek) - - Mark de Haan (markdehaan) - - Maxime Corteel (mcorteel) - - Dan Patrick (mdpatrick) - - Mathieu MARCHOIS (mmar) - - Nei Rauni Santos (nrauni) - - Geoffrey Monte (numerogeek) - - Martijn Boers (plebian) - - Plamen Mishev (pmishev) - - Pedro Magalhães (pmmaga) - - Rares Vlaseanu (raresvla) - - Trevor N. Suarez (rican7) - - Sergii Dolgushev (serhey) - - Clément Bertillon (skigun) - - Rein Baarsma (solidwebcode) - - tante kinast (tante) - - Stephen Lewis (tehanomalousone) - - Ahmed HANNACHI (tiecoders) - - Vincent LEFORT (vlefort) - - Walid BOUGHDIRI (walidboughdiri) - - Wim Molenberghs (wimm) - - Darryl Hein (xmmedia) - - Vladimir Sadicov (xtech) - - Marcel Berteler - - Ruud Seberechts - - sdkawata - - Frederik Schmitt - - Peter van Dommelen - - Tim van Densen - - Andrzej - - Alexander Zogheb - - tomasz-kusy - - Rémi Blaise - - Nicolas Séverin - - patrickmaynard - - Houssem - - Joel Marcey - - zolikonta - - Daniel Bartoníček - - Michael Hüneburg - - David Christmann - - root - - pf - - Zoli Konta - - Vincent Chalnot - - Roeland Jago Douma - - Patrizio Bekerle - - Tom Maguire - - Mateusz Lerczak - - Tim Porter - - Richard Quadling - - Will Rowe - - Rainrider - - David Zuelke - - Adrian - - Oliver Eglseder - - neFAST - - Peter Gribanov - - zcodes - - Pierre Rineau - - Florian Morello - - Maxim Lovchikov - - ivelin vasilev - - adenkejawen - - Florent SEVESTRE (aniki-taicho) - - Ari Pringle (apringle) - - Dan Ordille (dordille) - - Jan Eichhorn (exeu) - - Georg Ringer (georgringer) - - Grégory Pelletier (ip512) - - Johan Wilfer (johanwilfer) - - John Nickell (jrnickell) - - Martin Mayer (martin) - - Grzegorz Łukaszewicz (newicz) - - Nico Müller (nicomllr) - - Omar Yepez (oyepez003) - - Jonny Schmid (schmidjon) - - Toby Griffiths (tog) + - Simon DELICATA + - vitaliytv + - Franck RANAIVO-HARISOA (franckranaivo) + - Yi-Jyun Pan + - Philippe Segatori + - Jayson Xu (superjavason) + - Oleksandr Barabolia (oleksandrbarabolia) + - Sébastien Despont (bouillou) + - Maxime Douailin + - benjaminmal + - Dominik Ulrich + - Kay Wei + - Reen Lokum + - Michał Jusięga + - Marc Laporte + - Jean Pasdeloup + - Roy de Vos Burchart + - Jon Gotlin (jongotlin) + - Andrey Sevastianov + - James Johnston + - Joost van Driel (j92) + - Khoo Yong Jun + - Adrian Nguyen (vuphuong87) + - Julien Fredon + - Paulo Ribeiro (paulo) + - Sebastian Blum + - Matthew Davis (mdavis1982) + - Abhoryo + - Xavier Leune (xleune) + - Marcos Gómez Vilches (markitosgv) + - Baptiste CONTRERAS + - Julien Turby + - Lorenzo Millucci (lmillucci) + - Ricky Su (ricky) + - Cristoforo Cervino (cristoforocervino) + - scyzoryck + - Arno Geurts + - Florian Hermann (fhermann) + - Kyle Evans (kevans91) + - Max Rath (drak3) + - marie + - Stéphane Escandell (sescandell) + - Pavol Tuka + - Fractal Zombie + - Philipp Keck + - Noémi Salaün (noemi-salaun) + - Gennady Telegin + - Benedikt Lenzen (demigodcode) + - Alexandre Dupuy (satchette) + - Michel Hunziker + - Malte Blättermann + - Ilya Levin (ilyachase) + - Simeon Kolev (simeon_kolev9) + - Jonas Elfering + - Mihai Stancu + - louismariegaborit + - Nahuel Cuesta (ncuesta) + - Ruben Gonzalez (rubenruateltek) + - Chris Boden (cboden) + - Kuba Werłos (kuba) + - Johnson Page (jwpage) + - Jacques MOATI (jmoati) + - EStyles (insidestyles) + - Christophe Villeger (seragan) + - Harry Walter (haswalt) + - Krystian Marcisz (simivar) + - David Fuhr + - Hany el-Kerdany + - Dhananjay Goratela + - Åsmund Garfors + - Maxime COLIN (maximecolin) + - ywisax + - Javier López (loalf) + - Xavier Briand (xavierbriand) + - Douglas Reith (douglas_reith) + - Reinier Kip + - noniagriconomie + - Bill Hance (billhance) + - Jérôme Tamarelle (jtamarelle-prismamedia) + - Carlos Pereira De Amorim (epitre) + - Emil Masiakowski + - Geoffrey Brier (geoffrey-brier) + - Balazs Csaba + - Nykopol (nykopol) + - Tony Tran + - Alex Bogomazov (alebo) + - Martins Sipenko + - Michael Hüneburg + - root + - Vincent Chalnot + - Roeland Jago Douma + - Patrizio Bekerle + - Tom Maguire + - Mateusz Lerczak + - Tim Porter + - Richard Quadling + - Will Rowe + - Rainrider + - David Zuelke + - Adrian + - Oliver Eglseder + - neFAST + - Peter Gribanov + - zcodes + - Pierre Rineau + - Maxim Lovchikov + - adenkejawen + - Florent SEVESTRE (aniki-taicho) + - Jan Eichhorn (exeu) + - Georg Ringer (georgringer) + - Johan Wilfer (johanwilfer) + - Martin Mayer (martin) + - Ruud Seberechts + - ivelin vasilev + - John Nickell (jrnickell) + - Toby Griffiths (tog) + - Paul Le Corre + - Grzegorz Łukaszewicz (newicz) + - Nico Müller (nicomllr) + - Omar Yepez (oyepez003) + - carlos-ea - Ashura - Götz Gottwald - Alessandra Lai @@ -3192,10 +1548,8 @@ The Symfony Connect username in parenthesis allows to get more information - Thanh Trần - Robert Campbell - Matt Lehner - - carlos-ea - Olexandr Kalaidzhy - Helmut Januschka - - Jérémy Benoist - Hein Zaw Htet™ - Ruben Kruiswijk - Cosmin-Romeo TANASE @@ -3205,15 +1559,15 @@ The Symfony Connect username in parenthesis allows to get more information - youssef saoubou - Joseph Maarek - Alexander Menk - - Alex Pods - timaschew - Jelle Kapitein - Jochen Mandl - - elattariyassine - Asrorbek Sultanov - Marin Nicolae - Gerrit Addiks - Buster Neece + - lerminou + - Jenne van der Meer - Albert Prat - Alessandro Loffredo - Ian Phillips @@ -3221,16 +1575,18 @@ The Symfony Connect username in parenthesis allows to get more information - Remi Collet - Haritz - Matthieu Prat - - Brieuc Thomas - zors1 - Peter Simoncic - - lerminou - Adam Bramley + - thecaliskan - Ahmad El-Bardan + - martijn - mantulo + - Andrew Brown - pdragun - - Paul Le Corre + - Erik van Wingerden - Noel Light-Hilary + - Gilles Gauthier - Filipe Guerra - Jean Ragouin - Gerben Wijnja @@ -3241,12 +1597,8 @@ The Symfony Connect username in parenthesis allows to get more information - Per Modin - David Windell - Frank Jogeleit - - Ondřej Frei - Gabriel Birke - Derek Bonner - - martijn - - Jenne van der Meer - - annesosensio - NothingWeAre - Storkeus - goabonga @@ -3265,7 +1617,6 @@ The Symfony Connect username in parenthesis allows to get more information - sam-bee - Vlad Dumitrache - wetternest - - Erik van Wingerden - Valouleloup - Pathpat - Jaymin G @@ -3276,678 +1627,4455 @@ The Symfony Connect username in parenthesis allows to get more information - Matheus Gontijo - Gerrit Drost - Linnaea Von Lavia - - Andrew Brown - Javan Eskander - Lenar Lõhmus - - Cristian Gonzalez - MusikAnimal - AlberT - hainey - - Juan M Martínez - - Gilles Gauthier + - Dominik Hajduk (dominikalp) + - gondo (gondo) - Benjamin Franzke - Pavinthan + - David Joos (djoos) - Sylvain METAYER + - Dennis Smink (dsmink) - ddebree - Gyula Szucs - - Dmitriy - Tomas Liubinas + - Jan Hort + - Klaas Naaijkens + - Bojan + - Rafał + - Adria Lopez (adlpz) + - Adrien Peyre (adpeyre) + - Alexandre Jardin (alexandre.jardin) + - Bart Brouwer (bartbrouwer) + - baron (bastien) + - Bastien Clément (bastienclement) + - Rosio (ben-rosio) + - Simon Paarlberg (blamh) + - Anne-Sophie Bachelard + - Masao Maeda (brtriver) + - Alexander Dmitryuk (coden1) + - Valery Maslov (coderberg) + - Damien Harper (damien.harper) + - Darius Leskauskas (darles) + - david perez (davidpv) + - Denis Klementjev (dklementjev) + - Dominik Pesch (dombn) + - Tomáš Polívka (draczris) + - Duncan de Boer (farmer-duck) + - Franz Liedke (franzliedke) + - Gaylord Poillon (gaylord_p) + - Javier Núñez Berrocoso (javiernuber) + - Hadrien Cren (hcren) + - Gusakov Nikita (hell0w0rd) + - Halil Hakan Karabay (hhkrby) + - Jaap van Otterdijk (jaapio) + - Jelle Bekker (jbekker) + - Dave Heineman (dheineman) + - Giovanni Albero (johntree) + - Mikhail Prosalov (mprosalov) + - Jorge Martin (jorgemartind) + - Kubicki Kamil (kubik) + - Ronny López (ronnylt) + - Joeri Verdeyen (jverdeyen) + - Kevin Herrera (kherge) + - guangwu + - Luis Ramón López López (lrlopez) + - Vladislav Nikolayev (luxemate) + - Martin Mandl (m2mtech) + - Mehdi Mabrouk (mehdidev) + - Bart Reunes (metalarend) + - Muriel (metalmumu) + - Michael Pohlers (mick_the_big) + - Misha Klomp (mishaklomp) + - mlpo (mlpo) + - Marcel Pociot (mpociot) + - Ulrik Nielsen (mrbase) + - Marek Šimeček (mssimi) + - Cayetano Soriano Gallego (neoshadybeat) + - Artem (nexim) + - Olivier Laviale (olvlvl) + - Pierre Gasté (pierre_g) + - Pablo Monterde Perez (plebs) + - Pierre-Olivier Vares (povares) + - Jimmy Leger (redpanda) + - Julius (sakalys) + - Dmitry (staratel) + - Marcin Szepczynski (szepczynski) + - Simone Di Maulo (toretto460) + - Cyrille Jouineau (tuxosaurus) + - Florian Morello + - Wim Godden (wimg) + - Yorkie Chadwick (yorkie76) + - Maxime Aknin (3m1x4m) + - Lauris Binde (laurisb) + - Zakaria AMMOURA (zakariaamm) + - Shrey Puranik + - Pavel Barton + - michal + - GuillaumeVerdon + - valmonzo + - Dmitry Danilson + - Marien Fressinaud + - ureimers + - akimsko + - Youpie + - Jason Stephens + - Korvin Szanto + - Taylan Kasap + - Michael Orlitzky + - Nicolas A. Bérard-Nault + - Quentin Favrie + - Matthias Derer + - Francois Martin + - Saem Ghani + - Kévin + - Stefan Oderbolz + - Tamás Szigeti + - Gabriel Moreira + - Alexey Popkov + - ChS + - Jannik Zschiesche + - Alexis MARQUIS + - Joseph Deray + - Damian Sromek + - Evgeniy Tetenchuk + - Sjoerd Adema + - Kai Eichinger + - Evgeniy Koval + - Lars Moelleken + - dasmfm + - Karel Syrový + - Claas Augner + - Mathias Geat + - neodevcode + - Angel Fernando Quiroz Campos (angelfqc) + - Arnaud Buathier (arnapou) + - Curtis (ccorliss) + - chesteroni (chesteroni) + - Mauricio Lopez (diaspar) + - HADJEDJ Vincent (hadjedjvincent) + - Ismail Asci (ismailasci) + - Jeffrey Moelands (jeffreymoelands) + - Ondřej Mirtes (mirtes) + - vladyslavstartsev + - ToshY + - Paulius Jarmalavičius (pjarmalavicius) + - Ramon Ornelas (ramonornela) + - helmi + - Sylvain Lorinet + - Ruslan Zavacky (ruslanzavacky) + - Jakub Caban (lustmored) + - Stefano Cappellini (stefano_cappellini) + - Till Klampaeckel (till) + - Tobias Weinert (tweini) + - Wotre + - Sepehr Lajevardi + - George Bateman + - Xavier HAUSHERR + - Edwin Hageman + - Mantas Urnieža + - temperatur + - Paul Andrieux + - Sezil + - misterx + - Cas + - Vincent Godé - Ivo Valchev - - Jan Hort - - Klaas Naaijkens - - Bojan - - Rafał - - Adria Lopez (adlpz) - - Adrien Peyre (adpeyre) - - Aaron Scherer (aequasi) - - Alexandre Jardin (alexandre.jardin) - - Bart Brouwer (bartbrouwer) - - baron (bastien) - - Bastien Clément (bastienclement) - - Rosio (ben-rosio) - - Simon Paarlberg (blamh) - - Masao Maeda (brtriver) - - Alexander Dmitryuk (coden1) - - Valery Maslov (coderberg) - - Damien Harper (damien.harper) - - Darius Leskauskas (darles) - - david perez (davidpv) - - David Joos (djoos) - - Denis Klementjev (dklementjev) - - Dominik Pesch (dombn) - - Dominik Hajduk (dominikalp) - - Tomáš Polívka (draczris) - - Dennis Smink (dsmink) - - Duncan de Boer (farmer-duck) - - Franz Liedke (franzliedke) - - Gaylord Poillon (gaylord_p) - - gondo (gondo) - - Joris Garonian (grifx) - - Grummfy (grummfy) - - Hadrien Cren (hcren) - - Gusakov Nikita (hell0w0rd) - - Halil Hakan Karabay (hhkrby) - - Oz (import) - - Jaap van Otterdijk (jaapio) - - Javier Núñez Berrocoso (javiernuber) - - Jelle Bekker (jbekker) - - Giovanni Albero (johntree) - - Jorge Martin (jorgemartind) - - Joeri Verdeyen (jverdeyen) + - Michael Steininger + - Nardberjean + - Dylan + - ghazy ben ahmed + - Karolis + - Myke79 + - jersoe + - Brian Debuire + - Eric Grimois + - Christian Schiffler + - Piers Warmers + - Pavol Tuka + - klyk50 + - Colin Michoudet + - jc + - BenjaminBeck + - Aurelijus Rožėnas + - Beno!t POLASZEK + - Armando + - Jordan Hoff + - znerol + - Christian Eikermann + - Sergei Shitikov + - Steffen Keuper + - Jens Schulze + - Tema Yud + - Olatunbosun Egberinde + - Jiri Korenek + - Alexis Lefebvre + - Johannes + - Dominic Tubach + - Andras Debreczeni + - sarah-eit + - rhel-eo + - patrick-mcdougle + - Vladimir Sazhin + - lol768 + - Michel Bardelmeijer + - Menno Holtkamp + - Tomas Kmieliauskas + - Dariusz Czech + - Ikko Ashimine + - Alexandru Bucur + - Erwin Dirks + - cmfcmf + - Markus Ramšak + - Billie Thompson + - Philipp + - jamogon + - Tom Hart + - Vyacheslav Slinko + - Benjamin Laugueux + - Jakub Chábek + - Johannes + - Jörg Rühl + - George Dietrich + - jannick-holm + - wesleyh + - Ser5 + - Michael Hudson-Doyle + - Matthew Burns + - Daniel Bannert + - Karim Miladi + - Michael Genereux + - Greg Korba + - Camille Islasse + - Tyler Stroud + - Clemens Krack + - Bruno Baguette + - Jack Wright + - MrNicodemuz + - demeritcowboy + - Paweł Tomulik + - Eric J. Duran + - omerida + - Anatol Belski + - Blackfelix + - Pavel Witassek + - Michal Forbak + - Drew Butler + - Alexey Berezuev + - pawel-lewtak + - Pierrick Charron + - Steve Müller + - Andras Ratz + - Benjamin RICHARD + - andreabreu98 + - Jérémie Broutier + - Marcus + - gechetspr + - brian978 + - Michael Schneider + - n-aleha + - Richard Čepas + - Talha Zekeriya Durmuş + - Javier + - Alexis BOYER + - bch36 + - Kaipi Yann + - wiseguy1394 + - adam-mospan + - AUDUL + - Steve Hyde + - AbdelatifAitBara + - nerdgod + - Sam Williams + - Ettore Del Negro + - Guillaume Aveline + - Adrian Philipp + - James Michael DuPont + - Simone Ruggieri + - Kasperki + - dima-gr + - Daniel Strøm + - Rodolfo Ruiz + - tsilefy + - Enrico + - Adrien Foulon + - Sylvain Just + - Ryan Rud + - vlechemin + - Brian Corrigan + - Ladislav Tánczos + - Brian Freytag + - Skorney + - Lucas Matte + - Success Go + - fmarchalemisys + - MGatner + - mieszko4 + - Steve Preston + - ibasaw + - Wojciech Skorodecki + - Neophy7e + - Evert Jan Hakvoort + - rewrit3 + - Filippos Karailanidis + - David Ronchaud + - A. Pauly + - Chris McGehee + - Shaun Simmons + - Bogdan + - Pierre-Louis LAUNAY + - Arseny Razin + - Benjamin Rosenberger + - Michael Gwynne + - Eduardo Conceição + - changmin.keum + - Jon Cave + - Sébastien HOUZE + - Abdulkadir N. A. + - Markus Klein + - Adam Klvač + - Bruno Nogueira Nascimento Wowk + - Tomanhez + - satalaondrej + - jonmldr + - Yevgen Kovalienia + - Lebnik + - Shude + - RTUnreal + - Richard Hodgson + - Sven Fabricius + - Ondřej Führer + - Sema + - Ayke Halder + - Thorsten Hallwas + - Brian Freytag + - Arend Hummeling + - Joseph FRANCLIN + - Marco Pfeiffer + - Alex Nostadt + - Michael Squires + - Egor Gorbachev + - Julian Krzefski + - Derek Stephen McLean + - Norman Soetbeer + - zorn + - Yuriy Potemkin + - Emilie Lorenzo + - enomotodev + - Vincent + - Benjamin Long + - Fabio Panaccione + - Kévin Gonella + - Ben Miller + - Peter Gribanov + - Matteo Galli + - Bart Ruysseveldt + - Ash014 + - kwiateusz + - Nowfel2501 + - Ilya Bulakh + - David Soria Parra + - Arrilot + - Dawid Nowak + - Simon Frost + - Gert de Pagter + - Sergiy Sokolenko + - Harry Wiseman + - Cantepie + - llupa + - djama + - detinkin + - Loenix + - Ahmed Abdulrahman + - Penny Leach + - Kevin Mian Kraiker + - Yurii K + - Richard Trebichavský + - g123456789l + - Mark Ogilvie + - Jonathan Vollebregt + - oscartv + - Michal Čihař + - parhs + - Emilien Escalle + - jwaguet + - Diego Campoy + - Oncle Tom + - Sam Anthony + - Christian Stocker + - Oussama Elgoumri + - David Lima + - Steve Marvell + - Lesnykh Ilia + - Shyim + - darnel + - Nicolas + - Sergio Santoro + - tirnanog06 + - Andrejs Leonovs + - Alfonso Fernández García + - phc + - Дмитрий Пацура + - Signor Pedro + - Lin Lu + - RFreij + - Matthias Larisch + - Maxime P + - Sean Templeton + - Willem Mouwen + - db306 + - Bohdan Pliachenko + - Dr. Gianluigi "Zane" Zanettini + - Michaël VEROUX + - Julia + - arduanov + - Fabien + - David Courtey (david-crty) + - Martin Komischke + - Yendric + - Loïc Vernet (coil) + - ADmad + - Gerard Berengue Llobera (bere) + - Hugo Posnic + - Nicolas Roudaire + - Marc Jauvin + - Matthias Meyer + - Temuri Takalandze (abgeo) + - Bernard van der Esch (adeptofvoltron) + - Andreas Forsblom (aforsblo) + - Aleksejs Kovalovs (aleksejs1) + - Alex Olmos (alexolmos) + - Robin Kanters (anddarerobin) + - Antoine (antoinela_adveris) + - Juan Ases García (ases) + - Siragusa (asiragusa) + - Daniel Basten (axhm3a) + - Albert Bakker (babbert) + - Benedict Massolle (bemas) + - Ronny (big-r) + - Bernd Matzner (bmatzner) + - Vladimir Vasilev (bobahvas) + - Anton (bonio) + - Bram Tweedegolf (bram_tweedegolf) + - Brandon Kelly (brandonkelly) + - Choong Wei Tjeng (choonge) + - Bermon Clément (chou666) + - Citia (citia) + - Kousuke Ebihara (co3k) + - Christoph Vincent Schaefer (cvschaefer) + - Kamil Piwowarski (cyklista) + - Damon Jones (damon__jones) + - David Gorges (davidgorges) + - Alexandre Fiocre (demos77) + - Gustavo Adrian + - Chris Shennan (chrisshennan) + - Abdouni Karim (abdounikarim) + - Łukasz Giza (destroyer) + - Dušan Kasan (dudo1904) + - Joao Paulo V Martins (jpjoao) + - Sebastian Landwehr (dword123) + - Adel ELHAIBA (eadel) + - Julien Manganne (juuuuuu) + - Damián Nohales (eagleoneraptor) + - Gerry Vandermaesen (gerryvdm) + - Elliot Anderson (elliot) + - Yohan Giarelli (frequence-web) + - Erwan Nader (ernadoo) + - Ian Littman (iansltx) + - Fabien D. (fabd) + - Carsten Eilers (fnc) + - Sorin Gitlan (forapathy) + - Fraller Balázs (fracsi) + - Jorge Maiden (jorgemaiden) + - Lesueurs Frédéric (fredlesueurs) + - Arash Tabrizian (ghost098) + - Greg Szczotka (greg606) + - Nathan DIdier (icz) + - Vladislav Krupenkin (ideea) + - Peter Orosz (ill_logical) + - Ilia Lazarev (ilzrv) + - Imangazaliev Muhammad (imangazaliev) + - wesign (inscrutable01) + - j0k (j0k) + - joris de wit (jdewit) + - JG (jege) + - Jose Manuel Gonzalez (jgonzalez) + - Pierre-Chanel Gauthier (kmecnin) + - Joachim Krempel (jkrempel) + - Joshua Behrens (joshuabehrens) + - Justin Rainbow (jrainbow) + - JuntaTom (juntatom) + - Ismail Faizi (kanafghan) + - Karolis Daužickas (kdauzickas) + - Kérian MONTES-MORIN (kerianmm) + - Krzysztof Menżyk (krymen) + - Nicholas Byfleet (nickbyfleet) + - Ala Eddine Khefifi (nayzo) + - Kenjy Thiébault (kthiebault) + - Matt Ketmo (mattketmo) + - samuel laulhau (lalop) + - Matt Drollette (mdrollette) + - Laurent Bachelier (laurentb) + - Adam Monsen (meonkeys) + - Luís Cobucci (lcobucci) + - Aurimas Rimkus (patrikas) + - Petr Jaroš (petajaros) + - Seyedramin Banihashemi (ramin) + - Mehdi Achour (machour) + - Jérémy (libertjeremy) + - Mamikon Arakelyan (mamikon) + - Philipp Hoffmann (philipphoffmann) + - Daniel Perez Pinazo (pitiflautico) + - scourgen hung (scourgen) + - Mark Schmale (masch) + - Moritz Borgmann (mborgmann) + - Ralf Kühnel (ralfkuehnel) + - Marco Wansinck (mwansinck) + - Mike Milano (mmilano) + - Guillaume Lajarige (molkobain) + - Diego Aguiar (mollokhan) + - Steffen Persch (n3o77) + - emilienbouard (neime) + - Nicolas Bondoux (nsbx) + - Cedric Kastner (nurtext) + - ollie harridge (ollietb) + - Pawel Szczepanek (pauluz) + - Sebastian Busch (sebu) + - Philippe Degeeter (pdegeeter) + - PLAZANET Pierre (pedrotroller) + - Christian López Espínola (penyaskito) + - Pavel Golovin (pgolovin) + - Alex Carol (picard89) + - Igor Tarasov (polosatus) + - Maksym Pustynnikov (pustynnikov) + - Ramazan APAYDIN (rapaydin) + - Babichev Maxim (rez1dent3) + - Sergey Stavichenko (sergey_stavichenko) + - Andrea Giuliano (shark) + - André Filipe Gonçalves Neves (seven) + - Schuyler Jager (sjager) + - craigmarvelley + - Ángel Guzmán Maeso (shakaran) + - Bruno Ziegler (sfcoder) + - Tom Newby (tomnewbyau) + - Verlhac Gaëtan (viviengaetan) + - Şəhriyar İmanov (shehriyari) + - Roman Tymoshyk (tymoshyk) + - Volker (skydiablo) + - Julien Sanchez (sumbobyboys) + - Ron Gähler (t-ronx) + - Guillermo Gisinger (t3chn0r) + - Tomáš Korec (tomkorec) + - Andrew Clark (tqt_andrew_clark) + - Aaron Piotrowski (trowski) + - David Lumaye (tux1124) + - Moritz Kraft (userfriendly) + - Víctor Mateo (victormateo) + - Vincent MOULENE (vints24) + - David Grüner (vworldat) + - Eugene Babushkin (warl) + - Wouter Sioen (wouter_sioen) + - Xavier Amado (xamado) + - Jesper Søndergaard Pedersen (zerrvox) + - Florent Cailhol + - Konrad + - Kevin Weber + - Kovacs Nicolas + - eminjk + - Stano Turza + - Antoine Leblanc + - Andre Johnson + - MaPePeR + - Andreas Streichardt + - Alexandre Segura + - Marco Pfeiffer + - Vivien + - Pascal Hofmann + - david-binda + - smokeybear87 + - damaya + - szymek + - Marc Bennewitz + - Adam Elsodaney (archfizz) + - Carl Julian Sauter + - Dionysis Arvanitis + - Alexandru Năstase + - Sergey Fedotov + - Gabriel Solomon (gabrielsolomon) + - Konstantin Scheumann + - Josef Hlavatý + - Michael + - fh-github@fholzhauer.de + - rogamoore + - AbdElKader Bouadjadja + - ddegentesh + - DSeemiller + - Jan Emrich + - Anne-Julia Seitz + - mindaugasvcs + - Mark Topper + - Xavier REN + - Kevin Meijer + - max + - Ahmad Mayahi (ahmadmayahi) + - Mohamed Karnichi (amiral) + - Andrew Carter (andrewcarteruk) + - Gregório Bonfante Borba (bonfante) + - Bogdan Rancichi (devck) + - Daniel Kolvik (dkvk) + - Marc Lemay (flug) + - Courcier Marvin (helyakin) + - Henne Van Och (hennevo) + - Muharrem Demirci (mdemirci) + - Evgeny Z (meze) + - Aleksandar Dimitrov (netbull) + - Pierre-Henry Soria 🌴 (pierrehenry) + - Pierre Geyer (ptheg) + - Thomas BERTRAND (sevrahk) + - Vladislav (simpson) + - Marin Bînzari (spartakusmd) + - Stefanos Psarras (stefanos) + - Matej Žilák (teo_sk) + - Vladislav Vlastovskiy (vlastv) + - Yannick Vanhaeren (yvh) + - Ignacio Alveal - Kevin Verschaeve (keversc) - - Kevin Herrera (kherge) - - Kubicki Kamil (kubik) - - Lauris Binde (laurisb) - - Luis Ramón López López (lrlopez) - - Vladislav Nikolayev (luxemate) - - Martin Mandl (m2mtech) - - Mehdi Mabrouk (mehdidev) - - Bart Reunes (metalarend) - - Muriel (metalmumu) - - Michael Pohlers (mick_the_big) - - Misha Klomp (mishaklomp) - - mlpo (mlpo) - - Marcel Pociot (mpociot) - - Mikhail Prosalov (mprosalov) - - Ulrik Nielsen (mrbase) - - Marek Šimeček (mssimi) + - RENAUDIN Xavier (xorrox) + - Pontus Mårdnäs + - Ryan Linnit + - Sebastian Göttschkes (sgoettschkes) + - es + - David Szkiba + - Vladimir Pakhomchik + - drublic + - Simon / Yami + - Maciej Paprocki (maciekpaprocki) + - Abdelhakim ABOULHAJ + - PatrickRedStar + - Gary Houbre (thegarious) + - Zan Baldwin (zanderbaldwin) + - Thomas Cochard (tcochard) + - Mark Pedron (markpedron) + - Guillaume Loulier (guikingone) + - Ricardo de Vries (ricardodevries) + - Tristan Bessoussa (sf_tristanb) + - Alessandro Tagliapietra (alex88) + - Aaron Scherer (aequasi) + - Chris Maiden (matason) + - Michal Trojanowski + - Quentin Moreau (sheitak) + - Stefan Kruppa + - Julien Boudry + - insekticid + - Romain Pierre + - alexpods + - dantleech + - Jontsa + - JK Groupe + - cgonzalez + - Raphael Davaillaud + - Radosław Kowalewski + - Dmitry Hordinky + - William Pinaud (docfx) + - Paul Ferrett + - MightyBranch + - victor-prdh + - Jeremy Benoist + - Miloš Milutinović + - pizzaminded + - johnstevenson + - Roromix + - Nathaniel Catchpole + - gauss + - Per Sandström (per) + - azine + - Goran Juric + - heccjj + - Igor Plantaš + - Arkalo2 + - Jiri Falis + - taiiiraaa + - Ali Tavafi - Dmitriy Tkachenko (neka) - - Cayetano Soriano Gallego (neoshadybeat) - - Artem (nexim) - - Nicolas ASSING (nicolasassing) - - Olivier Laviale (olvlvl) - - Pierre Gasté (pierre_g) - - Pablo Monterde Perez (plebs) - - Pierre-Olivier Vares (povares) - - Jimmy Leger (redpanda) - - Ronny López (ronnylt) - - Julius (sakalys) - - Dmitry (staratel) - - Marcin Szepczynski (szepczynski) - - Tito Miguel Costa (titomiguelcosta) - - Simone Di Maulo (toretto460) - - Cyrille Jouineau (tuxosaurus) - - Lajos Veres (vlajos) - - Vladimir Chernyshev (volch) - - Wim Godden (wimg) - - Yorkie Chadwick (yorkie76) - - Zakaria AMMOURA (zakariaamm) - - Maxime Aknin (3m1x4m) - - Pavel Barton - - Exploit.cz - - GuillaumeVerdon - - Dmitry Danilson - - Marien Fressinaud - - ureimers - - akimsko - - Youpie - - Jason Stephens - - Korvin Szanto - - srsbiz - - Taylan Kasap - - Michael Orlitzky - - Nicolas A. Bérard-Nault - - Quentin Favrie - - Matthias Derer - - Francois Martin - - vladyslavstartsev + - Peter Zwosta + - Jeroen De Dauw (jeroendedauw) + - Wing + - Kai Dederichs + - Andrii Dembitskyi + - Enrico Schultz + - tpetry + - Nikita Sklyarov + - Dmitriy Derepko + - ondrowan + - Ninos + - Dmitry Simushev + - Juraj Surman + - Wang Jingyu + - JustDylan23 + - DaikiOnodera + - Aleksey Prilipko + - Victor + - Andreas Allacher + - Dan Kadera + - Christian Morgan + - Alexis + - withbest + - Abdelilah Jabri + - Ben Johnson + - Mickael Perraud + - Frank Schulze (xit) + - soyuka + - Yann LUCAS (drixs6o9) + - Farhad Hedayatifard + - Vincent Chalamon + - Nicolas Appriou + - Sorin Pop (sorinpop) + - Stewart Malik + - Alan ZARLI + - Renan Taranto (renan-taranto) + - Valérian Galliat + - Stefan Graupner (efrane) + - Charly Goblet (_mocodo) + - Anton Dyshkant + - Adrien Chinour + - Jiří Bok + - Thomas Jarrand + - Baptiste Leduc (bleduc) + - Piotr Zajac + - Patrick Kaufmann + - Ismail Özgün Turan (dadeather) + - Rafael Villa Verde + - Zoran Makrevski (zmakrevski) + - Kirill Nesmeyanov (serafim) + - Gemorroj (gemorroj) + - Reece Fowell (reecefowell) + - Htun Htun Htet (ryanhhh91) + - Guillaume Gammelin + - Elías Fernández + - d-ph + - Samael tomas + - Mahmoud Mostafa (mahmoud) + - Damien Fernandes + - Mateusz Żyła (plotkabytes) + - Jean-Christophe Cuvelier [Artack] + - Rene de Lima Barbosa (renedelima) + - Rikijs Murgs + - Mikkel Paulson + - WoutervanderLoop.nl + - Yewhen Khoptynskyi (khoptynskyi) + - Mihail Krasilnikov (krasilnikovm) + - Alex Vo (votanlean) + - Jonas Claes + - iamvar + - Amaury Leroux de Lens (amo__) + - Piergiuseppe Longo + - Nicolas Lemoine + - Christian Jul Jensen + - Valentin Barbu (jimie) + - Lukas Kaltenbach + - Daniel Iwaniec + - Alexandre GESLIN + - The Whole Life to Learn + - Pierre Tondereau + - Joel Lusavuvu (enigma97) + - kurozumi (kurozumi) + - Liverbool (liverbool) + - Aurélien MARTIN + - Malte Schlüter + - Jules Matsounga (hyoa) + - Nicolas Attard (nicolasattard) + - Jérôme Nadaud (jnadaud) + - Frank Naegler + - Sam Malone + - Ha Phan (haphan) + - Chris Jones (leek) + - neghmurken + - stefan.r + - Florian Cellier + - xaav + - Alexandre Tranchant (alexandre_t) + - Ahmed Abdou + - shreyadenny + - Pieter + - Kevin Auivinet + - ergiegonzaga + - Leonid Terentyev + - Luciano Mammino (loige) + - Radosław Benkel + - Laurent Clouet + - Dennis Tobar + - Ganesh Chandrasekaran (gxc4795) + - Michael Tibben + - Icode4Food (icode4food) + - Hallison Boaventura (hallisonboaventura) + - Billie Thompson + - Mas Iting + - Thomas Ferney (thomasf) + - Grégoire Hébert (gregoirehebert) + - Louis-Proffit + - Albion Bame (abame) + - Ferenczi Krisztian (fchris82) + - Guillaume Smolders (guillaumesmo) + - Iliya Miroslavov Iliev (i.miroslavov) + - Sander Marechal + - Ivan Nemets + - Franz Wilding (killerpoke) + - Artyum Petrov + - Oleg Golovakhin (doc_tr) + - Bert ter Heide (bertterheide) + - Kevin Nadin (kevinjhappy) + - jean pasqualini (darkilliant) + - Safonov Nikita (ns3777k) + - Mei Gwilym (meigwilym) + - Jitendra Adhikari (adhocore) + - Kevin Jansen + - Nicolas Martin (cocorambo) + - Tom Panier (neemzy) + - luffy1727 + - LHommet Nicolas (nicolaslh) + - fabios + - eRIZ + - Sander Coolen (scoolen) + - Vic D'Elfant (vicdelfant) + - Amirreza Shafaat (amirrezashafaat) + - Maarten Nusteling (nusje2000) + - Gordienko Vladislav + - Peter van Dommelen + - Ahmed EBEN HASSINE (famas23) + - Hubert Moreau (hmoreau) + - Marvin Butkereit + - dantleech + - Anton Babenko (antonbabenko) + - Chris de Kok + - Eduard Bulava (nonanerz) + - Damien Fayet (rainst0rm) + - Andreas Kleemann (andesk) + - Valentin + - Dalibor Karlović + - Nicolas Valverde + - Eric Krona + - Alex Plekhanov + - Igor Timoshenko (igor.timoshenko) + - Hryhorii Hrebiniuk + - Pierre-Emmanuel CAPEL + - Mario Blažek (marioblazek) + - Manuele Menozzi + - Ashura + - Yevhen Sidelnyk + - “teerasak” + - Irmantas Šiupšinskas (irmantas) + - Benoit Mallo + - Charles-Henri Bruyand + - Danilo Silva + - Giuseppe Campanelli + - Konstantin S. M. Möllers (ksmmoellers) + - Ken Stanley + - ivan + - Zachary Tong (polyfractal) + - linh + - Oleg Krasavin (okwinza) + - Jure (zamzung) + - Michael Nelson + - Nsbx + - hamza + - Kajetan Kołtuniak (kajtii) + - Dan (dantleech) + - Artem (digi) + - Sander Goossens (sandergo90) + - Rudy Onfroy + - DerManoMann + - MatTheCat + - Erfan Bahramali + - boite + - tamar peled + - Sergei Gorjunov + - tamirvs + - Silvio Ginter + - David Wolter (davewww) + - Peter Culka + - Arman + - MGDSoft + - Abdiel Carrazana (abdielcs) + - alanzarli + - joris + - Anna Filina (afilina) + - Vadim Tyukov (vatson) + - Yannick + - Gabi Udrescu + - Adamo Crespi (aerendir) + - Sortex + - chispita + - Wojciech Sznapka + - Emmanuel Dreyfus + - Luis Pabon (luispabon) + - boulei_n + - Shaun Simmons + - Ariel J. Birnbaum + - Patrick Luca Fazzi (ap3ir0n) + - Tim Lieberman + - Danijel Obradović + - Pablo Borowicz + - Ben Oman + - Ondřej Frei + - Bruno Rodrigues de Araujo (brunosinister) + - Máximo Cuadros (mcuadros) + - Jacek Wilczyński (jacekwilczynski) + - Christoph Kappestein + - Camille Baronnet + - EXT - THERAGE Kevin + - julien.galenski + - Florian Guimier + - Maxime PINEAU + - Igor Kokhlov (verdet) + - Christian Neff (secondtruth) + - Chris Tiearney + - Oliver Hoff + - Minna N + - andersmateusz + - Laurent Moreau + - Faton (notaf) + - Tom Houdmont + - mark burdett + - Piotr Antosik (antek88) + - Laurent G. (laurentg) + - Ville Mattila + - Jean-Baptiste Nahan + - SOEDJEDE Felix (fsoedjede) + - Thomas Decaux + - Mert Simsek (mrtsmsk0) + - Nicolas Macherey + - Asil Barkin Elik (asilelik) + - Nacho Martin (nacmartin) + - Bhujagendra Ishaya + - gr8b + - Guido Donnari + - Markus Baumer + - Jérôme Dumas + - Georgi Georgiev + - Norbert Schultheisz + - otsch + - Christophe Meneses (c77men) + - Jeremy David (jeremy.david) + - adnen chouibi + - Andrei O + - Łukasz Chruściel (lchrusciel) + - Max Beutel + - Jordi Rejas + - Troy McCabe + - gstapinato + - gr1ev0us + - Léo VINCENT + - mlazovla + - Alejandro Diaz Torres + - Bradley Zeggelaar + - Karl Shea + - Bouke Haarsma + - Valentin + - Nathan Sepulveda + - Jan Vernieuwe (vernija) + - Antanas Arvasevicius + - Adam Kiss + - Pierre Dudoret + - Thomas + - j.schmitt + - Maximilian Berghoff (electricmaxxx) + - Volker Killesreiter (ol0lll) + - Evgeny Anisiforov + - Tristan Pouliquen + - Dominic Luidold + - Thomas Bibaut + - Thibaut Chieux + - mwos + - Aydin Hassan + - Vedran Mihočinec (v-m-i) + - Jonathan Poston + - Sébastien Lévêque (legenyes) + - Rafał Treffler + - Ken Marfilla (marfillaster) + - Sergey Novikov (s12v) + - Arkadiusz Rzadkowolski (flies) + - creiner + - Marcos Quesada (marcos_quesada) + - Jan Pintr + - Jean-Guilhem Rouel (jean-gui) + - ProgMiner + - remieuronews + - Christian + - Matthew (mattvick) + - MARYNICH Mikhail (mmarynich-ext) + - Viktor Novikov (nowiko) + - Paul Mitchum (paul-m) + - Angel Koilov (po_taka) + - Marek Binkowski + - Max Grigorian (maxakawizard) + - allison guilhem + - benatespina (benatespina) + - Denis Kop + - Fabrice Locher + - Konstantin Chigakov + - Kamil Szalewski (szal1k) + - Yoann MOROCUTTI + - Ivan Yivoff + - jfcixmedia + - Martijn Evers + - Alexander Onatskiy + - Philipp Fritsche + - Léon Gersen + - tarlepp + - Giuseppe Arcuti + - Dustin Wilson + - Saif Eddin G + - Claus Due (namelesscoder) + - Alexandru Patranescu + - ju1ius + - Denis Golubovskiy (bukashk0zzz) + - Serge (nfx) + - Oksana Kozlova (oksanakozlova) + - Mikkel Paulson + - Dan Wilga + - Jon Green (jontjs) + - Michał Strzelecki + - Marcin Chwedziak + - Bert Ramakers + - Alex Demchenko + - Hugo Fonseca (fonsecas72) + - Marc Duboc (icemad) + - Martynas Narbutas + - Timothée BARRAY + - Nilmar Sanchez Muguercia + - Pierre LEJEUNE (darkanakin41) + - Bailey Parker + - curlycarla2004 + - Javier Ledezma + - Antanas Arvasevicius + - Kris Kelly + - Eddie Abou-Jaoude (eddiejaoude) + - Haritz Iturbe (hizai) + - Rutger Hertogh + - Diego Sapriza + - Joan Cruz + - inspiran + - Richard van Velzen + - Cristobal Dabed + - Daniel Mecke (daniel_mecke) + - Serhii Polishchuk (spolischook) + - Tadas Gliaubicas (tadcka) + - Thanos Polymeneas (thanos) + - Atthaphon Urairat + - Benoit Garret + - Maximilian Ruta (deltachaos) + - Jakub Sacha + - Julius Kiekbusch + - Kamil Musial + - Lucas Bustamante + - Olaf Klischat + - orlovv + - Adrian Olek (adrianolek) + - EdgarPE + - Claude Dioudonnat + - Jonathan Hedstrom + - Peter Smeets (darkspartan) + - Julien Bianchi (jubianchi) + - Michael Dawart (mdawart) + - Robert Meijers + - Tijs Verkoyen + - James Sansbury + - hjkl + - Thijs Reijgersberg + - Nicolas Jourdan (nicolasjc) + - Florian Heller + - Evgeny Efimov (edefimov) + - Oleksii Svitiashchuk + - Péter Buri (burci) + - Yann Rabiller (einenlum) + - Alexander Cheprasov + - Andrew Tch + - Peter Trebaticky + - Rodrigo Díez Villamuera (rodrigodiez) + - Brad Treloar + - Nicolas Sauveur (baishu) + - pritasil + - Abderrahman DAIF (death_maker) + - Stephen Clouse + - e-ivanov + - Nathanaël Martel (nathanaelmartel) + - Benjamin Dos Santos + - GagnarTest (gagnartest) + - Jochen Bayer (jocl) + - Tomas Javaisis + - HellFirePvP + - Constantine Shtompel + - VAN DER PUTTE Guillaume (guillaume_vdp) + - Patrick Carlo-Hickman + - Bruno MATEU + - Jeremy Bush + - Lucas Bäuerle + - Laurens Laman + - Thomason, James + - Dario Savella + - Gordienko Vladislav + - Joas Schilling + - Ener-Getick + - Markus Thielen + - Moza Bogdan (bogdan_moza) + - Viacheslav Sychov + - Zuruuh + - Helmut Hummel (helhum) + - Matt Brunt + - David Vancl + - Carlos Ortega Huetos + - jack.thomas (jackthomasatl) + - John VanDeWeghe + - kaiwa + - Charles Sanquer (csanquer) + - Albert Ganiev (helios-ag) + - Neil Katin + - Oleg Mifle + - David Otton + - V1nicius00 + - Will Donohoe + - Takashi Kanemoto (ttskch) + - peter + - Andoni Larzabal (andonilarz) + - Tugba Celebioglu + - Yann (yann_eugone) + - Jeroen de Boer + - Staormin + - Oleg Sedinkin (akeylimepie) + - Dan Brown + - Jérémy Jourdin (jjk801) + - David de Boer (ddeboer) + - BRAMILLE Sébastien (oktapodia) + - maxime.perrimond + - Guillem Fondin (guillemfondin) + - Markkus Millend + - Artem Kolesnikov (tyomo4ka) + - Gustavo Adrian + - Jorrit Schippers (jorrit) + - Matthias Neid + - danilovict2 + - Kuzia + - spdionis + - rchoquet + - v.shevelev + - rvoisin + - gitlost + - Taras Girnyk + - Simon Mönch + - Barthold Bos + - cthulhu + - Wolfgang Klinger (wolfgangklingerplan2net) + - Rémi Leclerc + - Jan Vernarsky + - Ionut Cioflan + - John Edmerson Pizarra + - Sergio + - Jonas Hünig + - Mehrdad + - Amine Yakoubi + - Eno Mullaraj (emullaraj) + - Arnaud CHASSEUX + - Eduardo García Sanz (coma) + - Makdessi Alex + - Dmitrii Baranov + - fduch (fduch) + - Aleksei Lebedev + - dlorek + - Stuart Fyfe + - Jason Schilling (chapterjason) + - Yannick + - Camille Dejoye (cdejoye) + - Pawel Smolinski + - Nathan PAGE (nathix) + - Nicolas Fabre (nfabre) + - Arnaud + - Klaus Purer + - Vladimir Mantulo (mantulo) + - Dmitrii Lozhkin + - Radoslaw Kowalewski + - Marion Hurteau (marionleherisson) + - Gilles Doge (gido) + - Oscar Esteve (oesteve) + - Sobhan Sharifi (50bhan) + - Peter Potrowl + - abulford + - Ilya Vertakov + - Brooks Boyd + - Axel Venet + - Roger Webb + - Yury (daffox) + - John Espiritu (johnillo) + - Tomasz (timitao) + - Nguyen Tuan Minh (tuanminhgp) + - Oxan van Leeuwen + - pkowalczyk + - dbrekelmans + - Mykola Zyk + - Soner Sayakci + - Max Voloshin (maxvoloshin) + - Raul Rodriguez (raul782) + - Piet Steinhart + - mousezheng + - mshavliuk + - Rémy LESCALLIER + - Kacper Gunia (cakper) + - Derek Lambert (dlambert) + - Peter Thompson (petert82) + - Victor Macko (victor_m) + - error56 + - Felicitus + - Jorge Vahldick (jvahldick) + - Krzysztof Przybyszewski (kprzybyszewski) + - Boullé William (williamboulle) + - Bart Baaten + - Clement Herreman (clemherreman) + - Frederic Godfrin + - Dalibor Karlović + - Paul Matthews + - Jakub Kisielewski + - Vacheslav Silyutin + - Aleksandr Dankovtsev + - Maciej Zgadzaj + - David Legatt (dlegatt) + - Alain Flaus (halundra) + - Arthur Woimbée + - tsufeki + - Théo DELCEY + - Philipp Strube + - Wim Hendrikx + - Andrii Serdiuk (andreyserdjuk) + - dangkhoagms (dangkhoagms) + - Jesper Noordsij + - Dan Ionut Dumitriu (danionut90) + - Evgeny (disparity) + - Floran Brutel (notFloran) (floran) + - Vladislav Rastrusny (fractalizer) + - Vlad Gapanovich (gapik) + - nyro (nyro) + - Konstantin Bogomolov + - Marco + - Marc Torres + - Mark Spink + - Alberto Aldegheri + - Cesar Scur (cesarscur) + - Cyril Vermandé (cyve) + - Daniele Orru' (danydev) + - Raul Garcia Canet (juagarc4) + - Dmitri Petmanson + - Tobias Stöckler + - Alexandre Melard + - Rafał Toboła + - Dominik Schwind (dominikschwind) + - Stefano A. (stefano93) + - PierreRebeilleau + - AlbinoDrought + - Sergey Yuferev + - Monet Emilien + - voodooism + - Mario Young + - cybernet (cybernet2u) + - martkop26 + - Orestis + - Raphaël Davaillaud + - Pablo Schläpfer + - Sander Hagen + - Alexander Menk + - Agustin Gomes + - Peter Jaap Blaakmeer + - Prasetyo Wicaksono (jowy) + - cilefen (cilefen) + - Mo Di (modi) + - ConneXNL + - Victor Truhanovich (victor_truhanovich) + - Adam Wójs (awojs) + - Tomasz Szymczyk (karion) + - Christian Rishøj + - Nikos Charalampidis + - Caligone + - Ismail Turan + - Patrick Berenschot + - SuRiKmAn + - matze + - Xavier RENAUDIN + - Christian Wahler (christian) + - Jelte Steijaert (jelte) + - Maxime AILLOUD (mailloud) + - David Négrier (moufmouf) + - Quique Porta (quiqueporta) + - Tobias Feijten (tobias93) + - mohammadreza honarkhah + - Jessica F Martinez + - paullallier + - Artem Oliinyk (artemoliynyk) + - Andrea Quintino (dirk39) + - Andreas Heigl (heiglandreas) + - Alex Vasilchenko + - sez-open + - fruty + - Aharon Perkel + - Justin Reherman (jreherman) + - Miłosz Guglas (miloszowi) + - Rubén Calvo (rubencm) + - Abdul.Mohsen B. A. A + - Cédric Girard + - Robert Worgul + - Swen van Zanten + - Malaney J. Hill + - Robert Korulczyk + - Patryk Kozłowski + - Alexandre Pavy + - Zander Baldwin + - Tim Ward + - Jeffrey Cafferata (jcidnl) + - Adiel Cristo (arcristo) + - Andrei Igna + - Christian Flach (cmfcmf) + - Marcin Nowak + - Mark van den Berg + - Fabian Kropfhamer (fabiank) + - Junaid Farooq (junaidfarooq) + - Pavel Starosek (octisher) + - Oriol Mangas Abellan (oriolman) + - Tatsuya Tsuruoka + - omniError + - László GÖRÖG + - djordy + - Mihai Nica (redecs) + - Adam Prickett + - Luke Towers + - Wojciech Zimoń + - Vladimir Melnik + - Anton Kroshilin + - Pierre Tachoire + - Juan Traverso + - Dawid Sajdak + - Maxime THIRY + - Norman Soetbeer + - Ludek Stepan + - Benjamin BOUDIER + - Frederik Schwan + - Aaron Stephens (astephens) + - Craig Menning (cmenning) + - Balázs Benyó (duplabe) + - Erika Heidi Reinaldo (erikaheidi) + - William Thomson (gauss) + - Javier Espinosa (javespi) + - Marc J. Schmidt (marcjs) + - František Maša + - Sebastian Schwarz + - Flohw + - karolsojko - Saem Ghani - - Kévin - - Stefan Oderbolz - - valmonzo - - Tamás Szigeti - - Gabriel Moreira - - Alexey Popkov - - ChS - - toxxxa - - michal - - Jannik Zschiesche - - Alexis MARQUIS - - Joseph Deray - - Damian Sromek - - Ben - - Evgeniy Tetenchuk - - Sjoerd Adema - - Shrey Puranik - - Kai Eichinger - - Evgeniy Koval - - Lars Moelleken - - dasmfm - - Karel Syrový - - Claas Augner - - Mathias Geat - - neodevcode - - Angel Fernando Quiroz Campos (angelfqc) - - Arnaud Buathier (arnapou) - - Curtis (ccorliss) - - chesteroni (chesteroni) - - Mauricio Lopez (diaspar) - - HADJEDJ Vincent (hadjedjvincent) - - Daniele Cesarini (ijanki) - - Ismail Asci (ismailasci) - - Jeffrey Moelands (jeffreymoelands) - - Jakub Caban (lustmored) - - Ondřej Mirtes (mirtes) - - Paulius Jarmalavičius (pjarmalavicius) - - Ramon Ornelas (ramonornela) - - Ricardo de Vries (ricardodevries) - - Ruslan Zavacky (ruslanzavacky) - - Stefano Cappellini (stefano_cappellini) - - Thomas Dutrion (theocrite) - - Till Klampaeckel (till) - - Tobias Weinert (tweini) - - Wotre - - goohib - - Tom Counsell - - Sepehr Lajevardi - - George Bateman - - Xavier HAUSHERR - - Edwin Hageman - - Mantas Urnieža - - temperatur - - ToshY - - Paul Andrieux - - Sezil - - misterx - - Cas - - arend - - Vincent Godé - - helmi - - Michael Steininger - - Nardberjean - - Dylan - - ghazy ben ahmed - - Karolis - - Myke79 - - jersoe - - Brian Debuire - - Eric Grimois - - Christian Schiffler - - Piers Warmers - - Sylvain Lorinet - - Pavol Tuka - - klyk50 - - Colin Michoudet - - jc - - BenjaminBeck - - Aurelijus Rožėnas - - Beno!t POLASZEK - - Armando - - Jordan Hoff - - znerol - - Christian Eikermann - - Sergei Shitikov - - Steffen Keuper - - Kai Eichinger - - Antonio Angelino - - Jens Schulze - - Tema Yud - - Matt Fields - - Olatunbosun Egberinde - - Johannes - - Andras Debreczeni - - Knallcharge - - Vladimir Sazhin - - Michel Bardelmeijer - - Tomas Kmieliauskas - - Ikko Ashimine - - Erwin Dirks - - Markus Ramšak - - Billie Thompson - - Philipp - - lol768 - - jamogon - - Tom Hart - - Vyacheslav Slinko - - Benjamin Laugueux - - guangwu - - Lane Shukhov - - Jakub Chábek - - William Pinaud (DocFX) + - Marco Jantke + - Maks Rafalko (bornfree) + - alifanau + - Claudiu Cristea + - Jonathan Gough + - Samy D (dinduks) + - Zacharias Luiten + - Clément LEFEBVRE (nemoneph) + - Sebastian Utz + - Adrien Gallou (agallou) + - twifty + - Andrea Sprega (asprega) + - Conrad Kleinespel (conradk) + - Viktor Bajraktar (njutn95) + - Walter Dal Mut (wdalmut) + - abluchet + - Ruud Arentsen + - Harald Tollefsen + - PabloKowalczyk + - Matthieu + - Arend-Jan Tetteroo + - Albin Kerouaton + - sebastian + - Mbechezi Nawo + - wivaku + - Markus Reinhold + - steveYeah + - Asrorbek (asrorbek) + - Ross Tuck + - Keri Henare (kerihenare) + - Andre Eckardt (korve) + - Cédric Lahouste (rapotor) + - Samuel Vogel (samuelvogel) + - Osayawe Ogbemudia Terry (terdia) + - Berat Doğan + - Christian Kolb + - Guillaume LECERF + - Alan Scott + - markusu49 + - Juanmi Rodriguez Cerón + - Andy Raines + - François Poguet + - Anthony Ferrara + - Geoffrey Pécro (gpekz) + - Klaas Cuvelier (kcuvelier) + - Flavien Knuchel (knuch) + - Mathieu TUDISCO (mathieutu) + - Dmytro Dzubenko + - Martijn Croonen + - Peter Ward + - Steve Frécinaux + - Constantine Shtompel + - Jules Lamur + - Volodymyr Kupriienko (greeflas) + - Renato Mendes Figueiredo + - Sagrario Meneses + - Illia Antypenko (aivus) + - Vašek Purchart (vasek-purchart) + - xdavidwu + - Alexander Pasichnik (alex_brizzz) + - Raphaël Droz + - Antal Áron (antalaron) + - Dominik Ritter (dritter) + - ShiraNai7 + - Cedrick Oka + - Guillaume Sainthillier (guillaume-sainthillier) + - Ivan Pepelko (pepelko) + - Janusz Jabłoński (yanoosh) + - Jens Hatlak + - Fleuv + - Tayfun Aydin + - Łukasz Makuch + - Arne Groskurth + - pthompson + - Ilya Chekalsky + - Ostrzyciel + - George Giannoulopoulos + - Thibault G + - Luis Ramirez (luisdeimos) + - Ilia Sergunin (maranqz) + - Daniel Richter (richtermeister) + - Sandro Hopf (senaria) + - ChrisC + - André Laugks + - jack.shpartko + - Mathieu Ledru (matyo91) + - Willem Verspyck + - Kim Laï Trinh + - Johan de Ruijter + - InbarAbraham + - Jason Desrosiers + - m.chwedziak + - marbul + - Andreas Frömer + - Jeroen Bouwmans + - Bikal Basnet + - Philip Frank + - David Brooks + - Lance McNearney + - Jelizaveta Lemeševa (broken_core) + - Daniel Rotter (danrot) + - jprivet-dev + - Ilya Biryukov (ibiryukov) + - Frank Neff (fneff) + - Ema Panz + - Roma (memphys) + - Dale.Nash + - Jozef Môstka (mostkaj) + - Daniel Tschinder + - Wojciech Błoszyk (wbloszyk) + - Florian Caron (shalalalala) + - Serhiy Lunak (slunak) + - Martin Pärtel + - Giorgio Premi + - Tom Corrigan (tomcorrigan) + - abunch + - 🦅KoNekoD + - Lukas Naumann + - Mikko Pesari + - Krzysztof Pyrkosz + - ncou + - Ian Carroll + - Dennis Fehr + - jdcook + - Daniel Kay (danielkay-cp) + - Matt Daum (daum) + - Malcolm Fell (emarref) + - Alberto Pirovano (geezmo) + - inwebo veritas (inwebo) + - Pascal Woerde (pascalwoerde) + - Pete Mitchell (peterjmit) + - phuc vo (phucwan) + - Luis Galeas + - CDR + - Bogdan Scordaliu + - Sven Scholz + - Frédéric Bouchery (fbouchery) + - Jacek Kobus (jackks) + - Patrick Daley (padrig) + - Phillip Look (plook) + - Foxprodev + - Artfaith + - Tom Kaminski + - developer-av + - Max Summe + - DidierLmn + - Pedro Silva + - Ivan Tse + - Chihiro Adachi (chihiro-adachi) + - Clément R. (clemrwan) + - Yoann Chocteau (kezaweb) + - Jeroen de Graaf + - Emmanuel Vella (emmanuel.vella) + - Hossein Hosni + - Marcus Stöhr (dafish) + - Ulrik McArdle + - BiaDd + - Jay Severson + - Oleksii Bulba + - Raphaëll Roussel + - Ramon Cuñat + - mboultoureau + - AnotherSymfonyUser (arderyp) + - Vitalii + - Tadcka + - Bárbara Luz + - Abudarham Yuval + - Beth Binkovitz + - adhamiamirhossein + - Maxim Semkin + - Gonzalo Míguez + - Jan Vernarsky + - Fabian Haase + - roog + - parinz1234 + - seho-nl + - Romain Geissler + - Viktoriia Zolotova + - Tomaz Ahlin + - Nasim + - Randel Palu + - Anamarija Papić (anamarijapapic) + - Daniel González Zaballos (dem3trio) + - Przemysław Piechota (kibao) + - Giuseppe Petraroli (gpetraroli) + - Ibon Conesa (ibonkonesa) + - Nikita Popov (nikic) + - nuryagdy mustapayev (nueron) + - Carsten Nielsen (phreaknerd) + - Valérian Lepeule (vlepeule) + - Vincent Vermeulen + - Stefan Moonen + - Robert Meijers + - Emirald Mateli + - René Kerner + - Michael Olšavský + - upchuk + - Tony Vermeiren (tony) + - Adrien Samson (adriensamson) + - Samuel Gordalina (gordalina) + - Nicolas Eeckeloo (neeckeloo) + - Andriy Prokopenko (sleepyboy) + - Dariusz Ruminski + - Starfox64 + - Ivo Valchev + - Thomas Hanke + - ffd000 + - Zlatoslav Desyatnikov + - Wickex + - tuqqu + - Wojciech Gorczyca + - Ahmad Al-Naib + - Neagu Cristian-Doru (cristian-neagu) + - Mathieu Morlon (glutamatt) + - NIRAV MUKUNDBHAI PATEL (niravpatel919) + - Owen Gray (otis) + - Sébastien Decrême (sebdec) + - Timothy Anido (xanido) + - Mara Blaga + - Rick Prent + - skalpa + - Bartłomiej Zając + - Pieter Jordaan + - Tournoud (damientournoud) + - Michael Dowling (mtdowling) + - Romain + - Karlos Presumido (oneko) + - Pierre Foresi (pforesi) + - Bart Wach + - Jos Elstgeest + - Kirill Lazarev + - Joe + - BilgeXA + - mmokhi + - Serhii Smirnov + - Robert Queck + - Peter Bouwdewijn + - Kurt Thiemann + - Daniil Gentili + - Thomas Counsell + - Pierre Grimaud (pgrimaud) + - Eduard Morcinek + - Wouter Diesveld + - Sebastian Ionescu + - Thomas Ploch + - Matěj Humpál + - Kristen Gilden + - Nico Hiort af Ornäs + - Eddy + - Felipy Amorim (felipyamorim) + - Amine Matmati + - Kasper Hansen + - Benny Born + - Thomas Boileau (tboileau) + - caalholm + - Hugo Sales + - Nouhail AL FIDI (alfidi) + - Michael Lively (mlivelyjr) + - Abderrahim (phydev) + - Attila Bukor (r1pp3rj4ck) + - Mickael GOETZ + - Alexander Janssen (tnajanssen) + - Thomas Chmielowiec (chmielot) + - Jānis Lukss + - Julien BERNARD + - Michael Zangerle + - rkerner + - Alex Silcock + - Raphael Hardt + - Ivan Nemets + - Dave Long + - Qingshan Luo + - Matthew J Mucklo + - AnrDaemon + - SnakePin + - Matthew Covey + - Tristan Kretzer + - Adriaan Zonnenberg + - Charly Terrier (charlypoppins) + - Dcp (decap94) + - Emre Akinci (emre) + - Rachid Hammaoui (makmaoui) + - psampaz (psampaz) + - Andrea Ruggiero (pupax) + - Stan Jansen (stanjan) + - Maxwell Vandervelde + - karstennilsen + - kaywalker + - Robert Kopera + - Jody Mickey (jwmickey) + - Victor Prudhomme + - Wouter Ras + - Simon Neidhold + - Patrik Patie Gmitter + - j4nr6n (j4nr6n) + - Gil Hadad + - Stelian Mocanita (stelian) + - Valentin VALCIU + - Franck Ranaivo-Harisoa + - Jeremiah VALERIE + - Alexandre Beaujour + - Martins Eglitis + - Grégoire Rabasse + - Cas van Dongen + - George Yiannoulopoulos + - Kevin Dew + - James Cowgill + - Žan V. Dragan + - sensio + - Julien Menth (cfjulien) + - Nicolas Schwartz (nicoschwartz) + - Tim Jabs (rubinum) + - Schvoy Norbert (schvoy) + - Aurélien Fontaine + - Stéphane Seng (stephaneseng) + - Benhssaein Youssef + - Benoit Leveque + - bill moll + - chillbram + - Benjamin Bender + - PaoRuby + - Holger Lösken + - Bizley + - Jared Farrish + - karl.rixon + - Konrad Mohrfeldt + - Lance Chen + - Ciaran McNulty (ciaranmcnulty) + - Dominik Piekarski (dompie) + - Andrew (drew) + - Rares Sebastian Moldovan (raresmldvn) + - Gautier Deuette + - dsech + - wallach-game + - Gilbertsoft + - Matthias Bilger + - tadas + - Bastien Picharles + - Linas Ramanauskas + - Martin Schophaus (m_schophaus_adcada) + - Olivier Scherler (oscherler) + - mamazu + - Marek Víger (freezy) + - Keith Maika + - izenin + - Mephistofeles + - Oleh Korneliuk + - Emmanuelpcg + - Rini Misini + - Attila Szeremi + - Pablo Ogando Ferreira + - Hoffmann András + - LubenZA + - Victor Garcia + - Juan Mrad + - Denis Yuzhanin + - k-sahara + - Flavian Sierk + - Rik van der Heijden + - Thomas Beaujean + - alireza + - Michael Bessolov + - sauliusnord + - Zdeněk Drahoš + - Dan Harper + - moldcraft + - Marcin Kruk + - Antoine Bellion (abellion) + - Ramon Kleiss (akathos) + - Alexey Buyanow (alexbuyanow) + - Antonio Peric-Mazar (antonioperic) + - Bjorn Twachtmann (dotbjorn) + - Goran (gog) + - Wahyu Kristianto (kristories) + - Tobias Genberg (lorceroth) + - Nicolas Badey (nico-b) + - Florent Blaison (orkin) + - Flo Gleixner (redflo) + - Romain Jacquart (romainjacquart) + - Shane Preece (shane) + - Stephan Wentz (temp) + - Johannes Goslar + - Mike Gladysch + - Geoff + - georaldc + - wusuopu + - Markus Staab + - Peter Potrowl + - Juliano Petronetto + - povilas + - Martynas Sudintas (martiis) + - Marie Minasyan (marie.minassyan) + - Gavin Staniforth + - Anton Sukhachev (mrsuh) + - bahram + - Gunnar Lium (gunnarlium) + - Pavlo Pelekh (pelekh) + - Nikita Starshinov (biji) + - andreybolonin1989@gmail.com + - Kirk Madera + - Alex Teterin (errogaht) + - Stefan Kleff (stefanxl) + - Boris Betzholz + - Marcel Siegert + - Kélian Bousquet (kells) + - RichardGuilland + - Sergey Fokin (tyraelqp) + - Pavel Stejskal (spajxo) + - Arnau González + - ryunosuke + - Tiago Garcia (tiagojsag) + - TheMhv + - Eviljeks + - everyx + - Richard Heine + - Francisco Facioni (fran6co) + - Stanislav Gamaiunov (happyproff) + - Iwan van Staveren (istaveren) + - Alexander McCullagh (mccullagh) + - Paul L McNeely (mcneely) + - Povilas S. (povilas) + - Laurent Negre (raulnet) + - Victoria Quirante Ruiz (victoria) + - Evrard Boulou + - pborreli + - Ibrahim Bougaoua + - Eric Caron + - GurvanVgx + - 2manypeople + - Thomas Bibb + - Athorcis + - Szymon Kamiński (szk) + - Stefan Koopmanschap + - George Sparrow + - Chris Tickner + - Toro Hill + - Matt Farmer + - Benoit Lévêque (benoit_leveque) + - André Laugks + - aetxebeste + - Andrew Coulton + - Roberto Guido + - Wouter de Wild + - mikocevar + - ElisDN + - Vitali Tsyrkin + - Juga Paazmaya + - Alexandre Segura + - afaricamp + - Josef Cech + - riadh26 + - AntoineDly + - Konstantinos Alexiou + - Andrii Boiko + - Dilek Erkut + - Harold Iedema + - WaiSkats + - Morimoto Ryosuke + - Ikhsan Agustian + - raplider + - Simon Bouland (bouland) + - Christoph König (chriskoenig) + - Dmytro Pigin (dotty) + - Abdouarrahmane FOUAD (fabdouarrahmane) + - Jakub Janata (janatjak) + - Jm Aribau (jmaribau) + - Matthew Foster (mfoster) + - Tobias Speicher + - Paul Seiffert (seiffert) + - Vasily Khayrulin (sirian) + - Stas Soroka (stasyan) + - Thomas Dubuffet (thomasdubuffet) + - Stefan Hüsges (tronsha) + - Jake Bishop (yakobeyak) + - Dan Blows + - popnikos + - Matt Wells + - Nicolas Appriou + - Javier Alfonso Bellota de Frutos + - stloyd + - Tito Costa + - Andreas + - Ulugbek Miniyarov + - Antoine Beyet + - Michal Gebauer + - Gerhard Seidel (gseidel) + - René Landgrebe + - Phil Davis + - Houziaux mike + - Thiago Melo + - Gleb Sidora + - Thomas Chmielowiec + - David Stone + - Giorgio Premi + - Jovan Perovic (jperovic) + - Pablo Maria Martelletti (pmartelletti) + - Sander van der Vlugt (stranding) + - Sebastian Drewer-Gutland (sdg) + - casdal + - Waqas Ahmed + - Bert Hekman + - Luis Muñoz + - Matthew Donadio + - Kris Buist + - Phobetor + - Eric Schildkamp + - Yoann MOROCUTTI + - d.huethorst + - Markus + - DerStoffel + - agaktr + - Janusz Mocek - Johannes - - Jörg Rühl - - George Dietrich - - jannick-holm - - wesleyh - - Menno Holtkamp - - Ser5 - - Michael Hudson-Doyle - - Matthew Burns - - Daniel Bannert - - Karim Miladi - - Michael Genereux - - Greg Korba - - Camille Islasse - - patrick-mcdougle - - Tyler Stroud - - Dariusz Czech - - Clemens Krack - - Bruno Baguette - - Jack Wright - - MrNicodemuz - - Anonymous User - - demeritcowboy - - Paweł Tomulik - - Eric J. Duran - - Blackfelix - - Pavel Witassek - - Alexandru Bucur - - Alexis Lefebvre - - cmfcmf - - sarah-eit - - Michal Forbak - - CarolienBEER + - Mostafa + - kernig + - shdev + - Andrey Ryaguzov + - Gennadi Janzen + - SenTisso + - Peter Bex + - Manatsawin Hanmongkolchai + - Gunther Konig + - Joe Springe + - Jesper Noordsij + - Jeremiah VALERIE + - Flinsch + - Maciej Schmidt + - botbotbot + - tatankat + - Cláudio Cesar + - Sven Nolting + - Timon van der Vorm + - nuncanada + - František Bereň + - G.R.Dalenoort + - Mike Francis + - Adrien Moiruad + - Nil Borodulia + - Vladimir Khramtsov (chrome) + - Adam Katz + - Julius Beckmann (h4cc) + - Almog Baku (almogbaku) + - Boris Grishenko (arczinosek) + - Arrakis (arrakis) + - Andrey Helldar + - Danil Khaliullin (bifidokk) + - Lorenzo Adinolfi (loru88) + - Benjamin Schultz (bschultz) + - Christian Grasso (chris54721) + - Gerd Christian Kunze (derdu) + - Stephanie Trumtel (einahp) + - Denys Voronin (hurricane) + - Ionel Scutelnicu (ionelscutelnicu) + - Juan Gonzalez Montes (juanwilde) + - Kamil Madejski (kmadejski) + - Mathieu Dewet (mdewet) + - none (nelexa) + - Nicolas Tallefourtané (nicolab) + - Botond Dani (picur) + - Rémi Faivre (rfv) + - Radek Wionczek (rwionczek) + - tinect (tinect) + - Nick Stemerdink + - Bernhard Rusch + - David Stone + - Vincent Bouzeran + - Ruben Jansen + - Thibaut Salanon + - Romain Dorgueil + - Christopher Parotat + - Dennis Haarbrink + - Daniel Kozák + - Urban Suppiger + - Julien JANVIER (jjanvier) + - Karim Cassam Chenaï (ka) + - Ahmed Shamim Hassan (me_shaon) + - Mikko Ala-Fossi + - Marcello Mönkemeyer (marcello-moenkemeyer) + - Michal Kurzeja (mkurzeja) + - nietonfir + - Nikola Svitlica (thecelavi) + - Nicolas Bastien (nicolas_bastien) + - Sjors Ottjes + - VojtaB + - Andy Stanberry + - Felix Marezki + - Normunds + - Yuri Karaban + - Walter Doekes + - Thomas Rothe + - Edwin + - Troy Crawford + - Kirill Roskolii + - Jeroen van den Nieuwenhuisen + - Andriy + - Taylor Otwell + - Ph3nol + - alefranz + - David Barratt + - Andrea Giannantonio + - Pavel.Batanov + - avi123 + - Pavel Prischepa + - Philip Dahlstrøm + - Pierre Schmitz + - Sami Mussbach + - qzylalala + - alsar + - Aarón Nieves Fernández + - Ahto Türkson + - Paweł Stasicki + - Kirill Saksin + - Shiro + - Reda DAOUDI + - michalmarcinkowski + - Warwick + - Chris + - Farid Jalilov + - Christiaan Wiesenekker + - Nicolas Pion + - Ariful Alam + - Florent Olivaud + - Foxprodev + - Eric Hertwig + - JakeFr + - Oliver Klee + - Niels Robin-Aubertin + - Simon Sargeant + - efeen + - Jan Christoph Beyer + - Muhammed Akbulut + - Nathanael d. Noblet + - Daniel Tiringer + - Rénald Casagraude (rcasagraude) + - Xesau + - Koray Zorluoglu + - Steeve Titeca (stiteca) + - Roy-Orbison + - Aaron Somi + - Elías (eliasfernandez) + - kshida + - Yasmany Cubela Medina (bitgandtter) + - Brian Graham (incognito) + - Michał Dąbrowski (defrag) + - Aryel Tupinamba (dfkimera) + - Hans Höchtl (hhoechtl) + - Jeremy Benoist + - Kevin Vergauwen (innocenzo) + - Alessio Baglio (ioalessio) + - Johannes Müller (johmue) + - Jordi Llonch (jordillonch) + - julien_tempo1 (julien_tempo1) + - Roman Igoshin (masterro) + - Nicholas Ruunu (nicholasruunu) + - Pierre Rebeilleau (pierrereb) + - Milos Colakovic (project2481) + - Raphael de Almeida (raphaeldealmeida) + - Mohammad Ali Sarbanha (sarbanha) + - Sergii Dolgushev (sergii-swds) + - Thomas Citharel (tcit) + - Alex Niedre + - evgkord + - Helmer Aaviksoo + - Roman Orlov + - Simon Ackermann + - Andreas Allacher + - VolCh + - Alexey Popkov + - Gijs Kunze + - Artyom Protaskin + - Steven Dubois + - Yurun + - ged15 + - Simon Asika + - Daan van Renterghem + - Raito Akehanareru (raito) + - Valmont Pehaut-Pietri (valmonzo) + - Bálint Szekeres + - amcastror + - Bram Van der Sype (brammm) + - Guile (guile) + - Mark Beech (jaybizzle) + - Julien Moulin (lizjulien) + - Mauro Foti (skler) + - Thibaut Arnoud (thibautarnoud) + - Yannick Warnier (ywarnier) + - Jörn Lang + - Kevin Decherf + - Paul LE CORRE + - Christian Weiske + - Maria Grazia Patteri + - dened + - muchafm + - Dmitry Korotovsky + - Michael van Tricht + - ReScO + - Tim Strehle + - Sébastien COURJEAN + - cay89 + - Sam Ward + - Hans N. Hjort + - Marko Vušak + - Walther Lalk + - Adam + - vltrof + - Ismo Vuorinen + - Markus Staab + - Valentin + - Gerard + - Sören Bernstein + - michael.kubovic + - devel + - Iain Cambridge + - Artem Lopata + - Viet Pham + - Alan Bondarchuk + - Pchol + - Benjamin Ellis + - Shamimul Alam + - Cyril HERRERA + - dropfen + - RAHUL K JHA + - Andrey Chernykh + - Edvinas Klovas - Drew Butler - - Alexey Berezuev - - pawel-lewtak - - Pierrick Charron - - Steve Müller - - omerida - - Andras Ratz - - andreabreu98 - - Marcus - - gechetspr - - brian978 - - Michael Schneider - - n-aleha - - Richard Čepas - - Talha Zekeriya Durmuş - - Anatol Belski - - Javier - - Alexis BOYER - - bch36 - - Kaipi Yann - - wiseguy1394 - - adam-mospan - - AUDUL - - Steve Hyde - - AbdelatifAitBara - - nerdgod - - Sam Williams - - Ettore Del Negro - - Guillaume Aveline - - Adrian Philipp - - James Michael DuPont - - Simone Ruggieri - - Markus Tacker + - Peter Breuls + - Chansig + - Kevin EMO + - Tischoi + - Sergii Dolgushev (serhey) + - divinity76 + - Amin Hosseini (aminh) + - vdauchy + - Andreas Hasenack + - J Bruni + - vlakoff + - Anthony Tenneriello + - thib92 + - Yiorgos Kalligeros + - Rudolf Ratusiński + - Bertalan Attila + - Arek Bochinski + - Rafael Tovar + - AmsTaFF (amstaff) + - Simon Müller (boscho) + - Yannick Bensacq (cibou) + - Cyrille Bourgois (cyrilleb) + - Damien Vauchel (damien_vauchel) + - Dmitrii Fedorenko (dmifedorenko) + - Frédéric G. Marand (fgm) + - Freek Van der Herten (freekmurze) + - Luca Genuzio (genuzio) + - Ioana Hazsda (ioana-hazsda) + - Jan Marek (janmarek) + - Mark de Haan (markdehaan) + - Maxime Corteel (mcorteel) + - Mathieu MARCHOIS (mmar) + - Nei Rauni Santos (nrauni) + - Geoffrey Monte (numerogeek) + - Martijn Boers (plebian) + - Plamen Mishev (pmishev) + - fabi + - Rares Vlaseanu (raresvla) + - Trevor N. Suarez (rican7) + - Clément Bertillon (skigun) + - Ahmed HANNACHI (tiecoders) + - Rein Baarsma (solidwebcode) + - tante kinast (tante) + - Stephen Lewis (tehanomalousone) + - Vincent LEFORT (vlefort) + - Andrew Marcinkevičius (ifdattic) + - Dan Patrick (mdpatrick) + - Ben Gamra Housseine (hbgamra) + - Darryl Hein (xmmedia) + - Wim Molenberghs (wimm) + - David Christmann + - Walid BOUGHDIRI (walidboughdiri) + - Marcel Berteler + - sdkawata + - Frederik Schmitt + - Peter van Dommelen + - Tim van Densen + - Andrzej + - tomasz-kusy + - Rémi Blaise + - Nicolas Séverin + - patrickmaynard + - Houssem + - Joel Marcey + - zolikonta + - Daniel Bartoníček + - Grégory Pelletier (ip512) + - natechicago + - Julien Pauli + - Juan Miguel Besada Vidal (soutlink) - Tomáš Votruba - - Kasperki - - dima-gr - - Daniel Strøm - - Tammy D - - Rodolfo Ruiz - - tsilefy - - Enrico - - Adrien Foulon - - Sylvain Just - - Ryan Rud - - Ondrej Slinták - - Jérémie Broutier - - vlechemin - - Brian Corrigan - - Ladislav Tánczos - - Brian Freytag - - Skorney - - Lucas Matte - - Success Go - - fmarchalemisys - - MGatner - - mieszko4 - - Steve Preston - - ibasaw - - koyolgecen - - Wojciech Skorodecki - - Kevin Frantz - - Neophy7e - - Evert Jan Hakvoort - - bokonet - - Arrilot - - andrey-tech - - David Ronchaud - - Chris McGehee - - Shaun Simmons - - Pierre-Louis LAUNAY - - Arseny Razin - - A. Pauly - - djama - - Benjamin Rosenberger - - Vladyslav Startsev - - Michael Gwynne - - Eduardo Conceição - - changmin.keum - - Jon Cave - - Sébastien HOUZE - - Abdulkadir N. A. - - Markus Klein - - Adam Klvač - - Bruno Nogueira Nascimento Wowk - - Tomanhez - - satalaondrej - - Matthias Dötsch - - jonmldr - - Nowfel2501 - - Yevgen Kovalienia - - Lebnik - - Shude - - RTUnreal - - Richard Hodgson - - Sven Fabricius + - Ross Motley (rossmotley) + - Cedric BERTOLINI (alsciende) + - Lyubomir Grozdanov (lubo13) + - Grayson Koonce + - Simone Fumagalli (hpatoio) + - Peter Dietrich (xosofox) + - Brandon Antonio Lorenzo + - Rafał Muszyński (rafmus90) + - Thierry Marianne + - Brieuc Thomas + - Ole Rößner (basster) + - Jonny Schmid (schmidjon) - Antonio Mansilla - - Ondřej Führer - - Bogdan - - Sema - - Ayke Halder - - Thorsten Hallwas - - Brian Freytag + - Johan + - Michael Simonson (mikes) + - Jordan de Laune (jdelaune) + - Michał Marcin Brzuchalski (brzuchal) + - César Suárez (csuarez) + - Thomas Dutrion (theocrite) + - Daniele Cesarini (ijanki) + - Silas Joisten (silasjoisten) + - uncaught + - Boris Medvedev + - Alexander Bauer (abauer) + - Nicolas ASSING (nicolasassing) + - Maksym Romanowski (maxromanovsky) + - Juan Luis (juanlugb) + - robin.de.croock + - Frankie Wittevrongel + - Ondřej Frei + - excelwebzone + - Martin Auswöger + - Vladimir Sadicov (xtech) + - Andrew Zhilin (zhil) + - Valentin Nazarov + - Guillaume Royer - Arend Hummeling - - Joseph FRANCLIN - - Marco Pfeiffer - - Alex Nostadt - - Michael Squires - - Egor Gorbachev - - Julian Krzefski - - Derek Stephen McLean - - PatrickRedStar - - Norman Soetbeer - - zorn - - Yuriy Potemkin - - Emilie Lorenzo - - prudhomme victor - - enomotodev - - Vincent - - Benjamin Long - - Fabio Panaccione - - Kévin Gonella - - Ben Miller - - Peter Gribanov - - Matteo Galli - - Bart Ruysseveldt - - Ash014 - - Loenix - - kwiateusz - - Ilya Bulakh - - David Soria Parra - - Simon Frost - - Sergiy Sokolenko - - Cantepie - - detinkin - - Ahmed Abdulrahman - - dinitrol - - Penny Leach - - Kevin Mian Kraiker - - Yurii K - - Richard Trebichavský - - Rich Sage - - g123456789l - - Mark Ogilvie - - Jonathan Vollebregt - - oscartv - - DanSync - - Peter Zwosta - - Michal Čihař - - parhs - - Harry Wiseman - - Emilien Escalle - - jwaguet - - Diego Campoy - - Oncle Tom - - Roland Franssen :) - - Sam Anthony - - Christian Stocker - - Oussama Elgoumri - - Gert de Pagter - - David Lima - - Steve Marvell - - Dawid Nowak - - Lesnykh Ilia - - Shyim - sabruss - - darnel - - Nicolas - - Sergio Santoro - - tirnanog06 - - Andrejs Leonovs - - llupa - - Alfonso Fernández García - - phc - - Дмитрий Пацура - - Signor Pedro - - RFreij - - Matthias Larisch - - Maxime P - - Sean Templeton - - Willem Mouwen - - db306 - - Bohdan Pliachenko - - Dr. Gianluigi "Zane" Zanettini - - Michaël VEROUX - - Julia - - Lin Lu - - arduanov - - sualko - - Marc Bennewitz - - Fabien - - Martin Komischke - - Yendric - - ADmad - - Hugo Posnic - - Nicolas Roudaire - - Marc Jauvin - - Matthias Meyer - - Abdouni Karim (abdounikarim) - - Temuri Takalandze (abgeo) - - Bernard van der Esch (adeptofvoltron) - - Andreas Forsblom (aforsblo) - - Aleksejs Kovalovs (aleksejs1) - - Alex Olmos (alexolmos) - - Cedric BERTOLINI (alsciende) - - Robin Kanters (anddarerobin) - - Antoine (antoinela_adveris) - - Juan Ases García (ases) - - Siragusa (asiragusa) - - Daniel Basten (axhm3a) - - Albert Bakker (babbert) - - Benedict Massolle (bemas) - - Gerard Berengue Llobera (bere) - - Ronny (big-r) - - Bernd Matzner (bmatzner) - - Vladimir Vasilev (bobahvas) - - Anton (bonio) - - Bram Tweedegolf (bram_tweedegolf) - - Brandon Kelly (brandonkelly) - - Choong Wei Tjeng (choonge) - - Bermon Clément (chou666) - - Chris Shennan (chrisshennan) - - Citia (citia) - - Kousuke Ebihara (co3k) - - Loïc Vernet (coil) - - Christoph Vincent Schaefer (cvschaefer) - - Kamil Piwowarski (cyklista) - - Damon Jones (damon__jones) - - David Courtey (david-crty) - - David Gorges (davidgorges) - - Alexandre Fiocre (demos77) - - Łukasz Giza (destroyer) - - Daniel Londero (dlondero) - - Dušan Kasan (dudo1904) - - Sebastian Landwehr (dword123) - - Adel ELHAIBA (eadel) - - Damián Nohales (eagleoneraptor) - - Elliot Anderson (elliot) - - Erwan Nader (ernadoo) - - Fabien D. (fabd) - - Carsten Eilers (fnc) - - Sorin Gitlan (forapathy) - - Fraller Balázs (fracsi) - - Lesueurs Frédéric (fredlesueurs) - - Yohan Giarelli (frequence-web) - - Gerry Vandermaesen (gerryvdm) - - Arash Tabrizian (ghost098) - - Greg Szczotka (greg606) - - Ian Littman (iansltx) - - Nathan DIdier (icz) - - Vladislav Krupenkin (ideea) - - Peter Orosz (ill_logical) - - Ilia Lazarev (ilzrv) - - Imangazaliev Muhammad (imangazaliev) - - wesign (inscrutable01) + - Knallcharge + - gndk + - Markus Tacker + - Fabian Steiner (fabstei) - Arkadiusz Kondas (itcraftsmanpl) - - j0k (j0k) - - joris de wit (jdewit) - - JG (jege) - - Jérémy CROMBEZ (jeremy) - - Jose Manuel Gonzalez (jgonzalez) - - Joachim Krempel (jkrempel) - - Jorge Maiden (jorgemaiden) - - Joshua Behrens (joshuabehrens) - - Joao Paulo V Martins (jpjoao) - - Justin Rainbow (jrainbow) - - Juan Luis (juanlugb) - - JuntaTom (juntatom) - - Julien Manganne (juuuuuu) - - Ismail Faizi (kanafghan) - - Karolis Daužickas (kdauzickas) - - Kérian MONTES-MORIN (kerianmm) - - Sébastien Armand (khepin) - - Pierre-Chanel Gauthier (kmecnin) - - Krzysztof Menżyk (krymen) - - Kenjy Thiébault (kthiebault) - - samuel laulhau (lalop) - - Laurent Bachelier (laurentb) - - Luís Cobucci (lcobucci) - - Jérémy (libertjeremy) - - Mehdi Achour (machour) - - Mamikon Arakelyan (mamikon) - - Mark Schmale (masch) - - Matt Ketmo (mattketmo) - - Moritz Borgmann (mborgmann) - - Matt Drollette (mdrollette) - - Adam Monsen (meonkeys) - - Mike Milano (mmilano) - - Guillaume Lajarige (molkobain) - - Diego Aguiar (mollokhan) - - Steffen Persch (n3o77) - - Ala Eddine Khefifi (nayzo) - - emilienbouard (neime) - - Nicholas Byfleet (nickbyfleet) - - Nicolas Bondoux (nsbx) - - Cedric Kastner (nurtext) - - ollie harridge (ollietb) - - Aurimas Rimkus (patrikas) - - Pawel Szczepanek (pauluz) - - Philippe Degeeter (pdegeeter) - - PLAZANET Pierre (pedrotroller) - - Christian López Espínola (penyaskito) - - Petr Jaroš (petajaros) - - Pavel Golovin (pgolovin) - - Philipp Hoffmann (philipphoffmann) - - Alex Carol (picard89) - - Daniel Perez Pinazo (pitiflautico) - - Igor Tarasov (polosatus) - - Maksym Pustynnikov (pustynnikov) - - Ralf Kühnel (ralfkuehnel) - - Seyedramin Banihashemi (ramin) - - Ramazan APAYDIN (rapaydin) - - Babichev Maxim (rez1dent3) - - scourgen hung (scourgen) - - Sebastian Busch (sebu) - - Sergey Stavichenko (sergey_stavichenko) - - André Filipe Gonçalves Neves (seven) - - Bruno Ziegler (sfcoder) - - Ángel Guzmán Maeso (shakaran) - - Andrea Giuliano (shark) - - Şəhriyar İmanov (shehriyari) + - Alexander Kurilo (kamazee) + - Lars Ambrosius Wallenborn (larsborn) + - Malte Wunsch (maltewunsch) + - Matteo Giachino (matteosister) - Thomas Baumgartner (shoplifter) - - Schuyler Jager (sjager) + - Vladimir Chernyshev (volch) + - Oz (import) + - Felix Eymonot (hyanda) + - Stanislau Kviatkouski (7-zete-7) - Christopher Georg (sky-chris) - - Volker (skydiablo) - - Julien Sanchez (sumbobyboys) - - Ron Gähler (t-ronx) - - Guillermo Gisinger (t3chn0r) - - Tomáš Korec (tomkorec) - - Tom Newby (tomnewbyau) - - Andrew Clark (tqt_andrew_clark) - - Aaron Piotrowski (trowski) - - David Lumaye (tux1124) - - Roman Tymoshyk (tymoshyk) - - Moritz Kraft (userfriendly) - - Víctor Mateo (victormateo) - - Vincent MOULENE (vints24) - - Verlhac Gaëtan (viviengaetan) - - David Grüner (vworldat) - - Eugene Babushkin (warl) - - Wouter Sioen (wouter_sioen) - - Xavier Amado (xamado) - - Jesper Søndergaard Pedersen (zerrvox) - - Florent Cailhol - - szymek - - Ryan Linnit - - Konrad - - Kovacs Nicolas - - eminjk - - craigmarvelley - - Stano Turza - - Antoine Leblanc - - drublic - - Andre Johnson - - MaPePeR - - Andreas Streichardt - - Alexandre Segura - - Marco Pfeiffer - - Vivien - - Pascal Hofmann - - david-binda - - smokeybear87 - - Gustavo Adrian - - damaya - - Kevin Weber - - Alexandru Năstase - - Carl Julian Sauter - - Dionysis Arvanitis - - Sergey Fedotov - - Konstantin Scheumann - - Josef Hlavatý - - Michael - - fh-github@fholzhauer.de - - rogamoore - - AbdElKader Bouadjadja - - ddegentesh - - DSeemiller - - Jan Emrich - - Anne-Julia Seitz - - mindaugasvcs - - Mark Topper - - Romain - - Xavier REN - - Kevin Meijer - - Ignacio Alveal - - max - - Alexander Bauer (abauer) - - Ahmad Mayahi (ahmadmayahi) - - Mohamed Karnichi (amiral) - - Andrew Carter (andrewcarteruk) - - Adam Elsodaney (archfizz) - - Gregório Bonfante Borba (bonfante) - - Bogdan Rancichi (devck) - - Daniel Kolvik (dkvk) - - Marc Lemay (flug) - - Gabriel Solomon (gabrielsolomon) - - Courcier Marvin (helyakin) - - Henne Van Och (hennevo) - - Jeroen De Dauw (jeroendedauw) - - Muharrem Demirci (mdemirci) - - Evgeny Z (meze) - - Aleksandar Dimitrov (netbull) - - Pierre-Henry Soria 🌴 (pierrehenry) - - Pierre Geyer (ptheg) + - tamcy + - Yohann Tilotti + - Muhammad Aakash + - Anthony Moutte + - Adoni Pavlakis (adoni) + - Nicolas Le Goff (nlegoff) + - Tero Alén (tero) + - Daniel Londero (dlondero) + - Ryan Rogers + - Stephen + - aim8604 + - ZiYao54 + - Eric Stern + - Guillaume BRETOU (guiguiboy) + - Artiom + - Bruno BOUTAREL + - Jakub Simon + - Bernat Llibre Martín (bernatllibre) + - Zayan Goripov + - downace + - Robin Duval (robin-duval) + - Ivo + - pf + - elattariyassine + - Joris Garonian (grifx) + - Tito Miguel Costa (titomiguelcosta) + - goohib + - andrey-tech + - dinitrol + - Jérémy CROMBEZ (jeremy) + - mlievertz + - Benjamin Paap (benjaminpaap) + - Uladzimir Tsykun + - Fred Cox + - Ksaveras Šakys (xawiers) + - Lin Clark + - RevZer0 (rav) + - Yura Uvarov (zim32) + - Dan Finnie + - Nerijus Arlauskas (nercury) + - Clément + - Philipp Kretzschmar + - Jairo Pastor + - rtek + - Kévin Gomez (kevin) + - Sébastien HOUZÉ + - BrokenSourceCode + - Robert-Jan de Dreu + - simbera + - Peter Schultz + - Wissame MEKHILEF + - Mihai Stancu + - shreypuranik + - Koalabaerchen + - alex + - gedrox + - Pedro Magalhães (pmmaga) + - Ari Pringle (apringle) + - Dan Ordille (dordille) + - Juan M Martínez + - Matt Fields + - Lajos Veres (vlajos) + - toxxxa + - Kai Eichinger + - Antonio Angelino + - CarolienBEER + - Tammy D + - Kevin Frantz + - bokonet + - Sébastien Armand (khepin) - Richard Henkenjohann (richardhj) - - Thomas BERTRAND (sevrahk) - - Vladislav (simpson) - - Marin Bînzari (spartakusmd) - - Stefanos Psarras (stefanos) - - Matej Žilák (teo_sk) - - Gary Houbre (thegarious) - - Vladislav Vlastovskiy (vlastv) - - RENAUDIN Xavier (xorrox) - - Yannick Vanhaeren (yvh) - - Zan Baldwin (zanderbaldwin) + - 蝦米 + - klemens + - Lane Shukhov + - Dennis Jaschinski (d.jaschinski) + - Martin Eckhardt + - André Matthies + - ttomor + - Gavin (gavin-markup) + - Evgeny Ruban + - Florian Bogey + - Soha Jin + - Alexander Zogheb + - Rich Sage + - sualko + - koyolgecen + - James Mallison + - BT643 + - M.Wiesner + - Erdal G + - Daniel Siepmann + - Alaa AttyaMohamed (alaaattya) + - atmosf3ar + - aziz benmallouk (aziz403) + - Rob Meijer (robmeijer) + - Bruno Ferme Gasparin (bfgasparin) + - silver-dima + - Ldiro + - Nick Winfield + - Raphaël Geffroy + - Asma Drissi (adrissi) + - Egor Ushakov (erop) + - Janusz Slota (janusz.slota) + - Szymon Skowroński (skowi) + - Thomas Le Duc (viper) + - Artur Butov (vuras) + - Neal Brooks (nealio82) + - Fabian Spillner (fspillner) + - SirRFI + - Jérôme Poskin (moinax) + - z38 + - lacatoire + - Bill Israel + - Armen Mkrtchyan (iamtankist) + - RisingSunLight + - unknown + - Sam Korn + - Surfoo (surfoo) + - dcramble + - Anthony Rey (sydney_o9) + - Daniel Felix (danielfellix) + - Janosch Oltmanns (janosch_oltmanns) + - Christian + - Giuseppe Attardi + - Walter Nuñez + - Bart van Raaij (bartvanraaij) + - David Paz (davidmpaz) + - Markus Tacker + - Kim Wüstkamp (kimwuestkamp) + - tchap + - Benjamin Bourot + - Chris McMacken (chrism) + - Benjamin Lazarecki (benjaminlazarecki) + - matt smith (dr-matt-smith2) + - Kane Menicou (kane-menicou) + - Stéphane Paul BENTZ (spbentz) + - KaroDidi + - CJDennis + - Olivier Toussaint (cinquante) + - Raul C + - Cristi Contiu (cristi-contiu) + - Tim + - Marcel Korpel + - Yaroslav Yaremenko + - Justin Liiper (liiper) + - Al-Saleh KEITA + - Dan Michael O. Heggø (danmichaelo) + - Laurens Laman (laulaman) + - Joe Hans Robles Martínez (joebuntu) + - Florian Körner (koernerws) + - Agustín Pacheco Di Santi + - d.syph.3r + - Hyunmin Kim (kigguhholic) + - Alexis Urien (axi35) + - Marek Bartoš + - Markus Tacker + - Thomas P + - Jeroen + - Aymeric Mayeux (aymdev) + - Kamil Pešek (kamil_pesek) + - Nicolas Clavaud (nclavaud) + - Aaron Valandra + - Myystigri + - Guillaume Sarramegna + - Kristof (jockri) + - Jérémy Crapet + - Ahmed Lebbada (sidux) + - Alexis Lefebvre + - Alex Theobold + - Abdellah EL GHAILANI (aelghailani) + - Benjamin D. (benito103e) + - Mark Badolato (mbadolato) + - Tsimafei Charniauski (varloc2000) + - Sherin Bloemendaal + - laurent negre + - Beno!t POLASZEK + - Mario Martinez (chichibek) + - Florian Bastien (fbastien) + - Maik Penz + - Brooks Van Buren (brooksvb) + - Axel K. + - Ivan Yivoff + - wouthoekstra + - Paul Waring + - Brice Lalu (bricelalu) + - Alexandre Castelain (calex_92) + - Rafał Mnich (rafalmnich-msales) + - Andrei Karpilin (karpilin) + - Julien Dephix + - Mathieu + - Jade Xau + - Thomas Berends + - Nils Freigang (pueppiblue) + - Juan Manuel Fernandez (juanmf) + - Ben Glassman (bglassman) + - unknown + - Pierre Maraître (balamung) + - Kolyunya (kolyunya) + - Daniel Kesselberg (kesselb) + - MarcomTeam + - gitomato + - Thibault Pelloquin (thibault_pelloquin) + - Heaven31415 + - Pavel Máca + - Michael Sheakoski + - Patrick Bielen + - Emir Beganović (emirb) + - Tim Stamp + - Daniel Parejo Muñoz (xdaizu) + - Florian-B + - Guillaume Rossignol + - Marcin Sekalski + - Wouter J + - Kai Eichinger (kai_eichinger) + - Matthew Loberg (mloberg) + - xuni + - timothymctim + - tuanalumi + - ayacoo + - Kevin Lot + - Andrea Cristaudo + - Romain + - Jochem Klaver + - Aalaap Ghag (aalaap) + - Eric Poe (ericpoe) + - Giancarlos Salas (giansalex) + - Gauthier Gilles + - Julien Ferchaud (guns17) + - Pedro Junior (vjnrv) + - Max R (maxr) + - xamgreen + - Igor + - Michal Zuber + - Lyrkan + - Maxime Cornet (elysion) + - Arvydas K + - Chris Thompson (toot) + - Carl Schwan + - Vince (zhbzhb) + - Hamza Hanafi + - Bogdan Olteanu + - Nurlan Alekberov + - Jérôme Nadaud + - entering + - OИUЯd da silva + - Clément MICHELET (chiendelune) + - Erison silva (eerison) + - Sarim Khan (gittu) + - Jakub Szcześniak (jakubszczesniak) + - JohnyProkie (john_prokie) + - Krzysztof Daniel (krzysdan) + - Mitchel (mitch) + - Pierre Joube (pierrejoube) + - Zairig Imad + - Romain Biard (rbiard) + - Nik Spijkerman + - Luka Žitnik + - Eugene Wolfson + - Danielle Suurlant (dsuurlant) + - Julien Deniau (jdeniau) + - van truong PHAN (vantruongphan) + - Alex Luneburg + - MohamedElKadaoui + - iqfoundry + - Lauri + - Thomas Ploch + - Franklin LIA + - autiquet axel + - Florentin Garnier + - Alex Wybraniec + - Paweł Farys + - Carlton Dickson (carltondickson) + - Christopher Hoult (choult) + - Clemens Krack (ckrack) + - George Pogosyan (gp) + - Joshua (suabahasa) + - Jean-Baptiste Delhommeau (jbdelhommeau) + - Kristian Zondervan (krizon) + - Mathias Geat (maffibk) + - Alex Brims (outspaced) + - Joel Doyle (oylex) + - Pau Oliveras (poliveras) + - Shane Archer (sarcher) + - Leanna Pelham (leannapelham) + - Stefan Doorn (stefandoorn) + - M E (ttc) + - Christophe Deliens (cdeliens) + - Tony Tran (tony-tran) + - Alden Weddleton (wnedla) + - Patryk Miedziaszczyk + - Michael Lenahan + - Giacomo Moscardini + - Kris + - Dustin Meiner + - Arc Tod + - Max Schindler (chucky2305) + - Kai (kai_dederichs) + - SamanShafigh + - Andrii Mishchenko (krlove) + - KULDIP PIPALIYA (kuldipem) + - Taiwo A (tiwiex) + - Tobias Olry (tolry) + - Maxime Douailin + - Chris Taylor + - Andy Dawson + - Jason Grimes + - jonasarts + - Salah MEHARGA + - Marvin Hinz + - Jacek Jędrzejewski + - chapterjason + - mohamed + - rodmar35 + - Krzysztof Lament + - Euge Starr + - Steve Nebes + - jms85 + - M.Eng. René Schwarz + - Shawn Dellysse + - Steve + - Rico Neitzel + - Alessio Pierobon (alepsys) + - Andrey Bolonin + - robert Parker + - ampt . (ampt) + - Philippe Mine (dispositif) + - Favian Ioel Poputa (favianioel) + - Fernando Aguirre Larios (ingaguirrel) + - Javi H. Gil (javibilbo) + - Jean-Marie Lamodière (jmlamo) + - XitasoChris + - kenjis (kenjis) + - Kevin Archer (kevarch) + - Žilvinas Kuusas (kuusas) + - Mostefa Medjahed (mostefa) + - Andrianovah nirina randriamiamina (novah) + - Nicolas Potier (npotier) + - Ejamine + - moon-watcher + - Paweł Skotnicki (pskt) + - Andrey (quiss) + - Robert Saylor (rsaylor) + - Rubén Rubio Barrera (rubenrubiob) + - Rick van Laarhoven (rvanlaarhoven) + - Therage Kevin + - Saad Tazi (saadtazi) + - Sasha Matejic (smatejic) + - Yopai + - Souhail (souhail_5) + - Valentin Ferriere (choomz) + - JakeFr + - Rémi T'JAMPENS (tjamps) + - venu (venu) + - Nicolas Dievart (youri) + - Zaid Rashwani (zrashwani) + - authentictech + - Jordan Lev + - James (acidjames) + - Pierre Galvez (shafan_dev) + - Ulrich Völkel (udev) + - Nebojša Kamber + - Stepan Mednikov + - Uri Goldshtein + - Vyacheslav Pavlov + - Pierre de Soos + - Johnny Peck + - Mario Young + - Cangit + - TrueGit + - Tim Kuijsten + - Dennis Benkert + - Nicola Pietroluongo + - Charcosset Johnny + - Hmache Abdellah + - ABRAHAM Morgan + - Lucas Mlsna + - RickieL + - Xavier Laviron + - Severin J + - Julien (mewt) + - Alexander O'Neill + - Jürgen + - Bruno Vitorino + - Daniel Werner (powerdan) + - Lukáš Brzák (rapemer) + - adursun + - Alihasana SHAIKALAUDDEEN + - Darmen Amanbayev + - Leonel Machava + - javaDeveloperKid + - Syedi Hasan + - Tom Nguyen + - Yngve Høiseth + - dawidpierzchalski + - Steve Wasiura + - Muhammad Nasir Rahimi + - Rick Pastoor + - Gun5m0k3 + - Gilles Taupenas + - Brian Gallagher + - MarvinBlstrli + - Marichez Pierre (chtipepere) + - Danny Kopping (dannykopping) + - Krzysztof Lechowski (kshishkin) + - Andras Ratz (ghostika) + - Michael Sivolobov (astronomer) + - Quentin Stoeckel (chteuchteu) + - Rafael Gil (cybervoid) + - Cyril VERLOOP (cyrilverloop) + - Ivan Kosheliev (dfyz) + - Duane Gran (duanegran) + - Thomas Decaux (ebuildy) + - Fred Jiles (fredjiles) + - Glen Jaguin (gl3n) + - Joshua Dickerson (groundup) + - Julio (gugli100) + - Dan Finnie + - Yassine Fikri (yassinefikri) + - Hector Hurtarte (hectorh30) + - Oliver Forral (intrepion) + - Jack Delin (jackdelin) + - Jean-Luc MATHIEU (jls2933) + - Josh Taylor (josher) + - Kevin Robatel (kevinrob) + - Keefe Kwan (kkwan) + - Piotr Gołębiewski (loostro) + - Maxime Morlet (maxicom) + - Ana Cicconi + - Mohamed Ettaki TALBI (takman) + - Michał Kurcewicz (mkurc1) + - nencho nencho (nencho) + - pbijl (pbijl) + - Patrick Maynard + - rahul (rahul) + - bouffard (shinmen33) + - Kevin Carmody (skinofstars) + - Tomasz Tybulewicz (tybulewicz) + - Vlad Ghita (vghita) + - Ahmed El Moden + - Unlikenesses + - Ousmane NDIAYE + - Erlang Parasu (erlangparasu) + - Pieter Oliver + - Viacheslav Demianov (sdem) + - David ALLIX (weba2lix) + - Carlos Granados + - kirill-oficerov + - aliber4079 + - ptrm04 + - Jeroen Deviaene + - Marc Verney + - Goran Grbic (tpojka) + - Marcin Sękalski (senkal) + - Frédéric Planté + - Alexandr Podgorbunschih (apodgorbunschih) + - Thomas Kappel + - Charles EDOU NZE + - Daichi Kamemoto (yudoufu) + - Oliver Stark (oliver.stark) + - gnito-org + - Marc Verney + - alexmart + - Daniël Brekelmans + - Loïc Salanon + - Mathias STRASSER + - Navid Salehi (nvdsalehi) + - armin-github + - Jerome Gangneux + - Denis Brumann + - Daryl Gubler (dev88) + - Dorian Sarnowski (dorian) + - Viktor Linkin (adrenalinkin) + - Stephen Ostrow (isleshocky77) + - Thijs Feryn + - Ionut Enache + - Conrad Pankoff + - Stefan hr Berder + - Micheal Cottingham (micheal) + - Dylan Delobel (dylandelobel) + - Shiraz (zpine) + - Edgar Brunet + - Jeff Zohrab + - CvekCoding + - Philippe Milot + - Gilles Gauthier + - Eöras + - lacpandore + - Emilio de la Torre (emiliodelatorrea) + - Terje Bråten + - Marcin Muszynski + - Robin Delbaere (rdelbaere) + - Albert Moreno + - Moroine Bentefrit + - Romain Petit + - Fabien Bourigault + - Daniele D'Angeli (erlangb) + - mervinmcdougall + - Olivier Acmos (olivier_acmos) + - mccullagh + - technetium + - Dimitri Labouesse + - Tyler King + - Piotr Grabski-Gradziński (piotrgradzinski) + - Iqbal Malik (iqbal_malik89) + - Lucas CHERIFI (kasifi) + - hidde.wieringa + - Peter Bottenberg + - Sofien NAAS + - Freerich Bäthge (freerich) + - Lopton + - MarkPedron + - JhonnyL + - grelu + - Russell Flynn (rooster) + - Malte Blättermann + - Lander Vanderstraeten + - Florian Moser + - Éric + - Arnaud Lejosne + - larsborn + - Steve Clay (mrclay) + - Pierre Pélisset (ppelisset) + - Tarjei Huse (symfony_cloud) + - Damien Fayet + - Lucas Mlsna + - Philippe Gamache (philippegamache) + - Cyanat + - Terje Bråten + - Vincent Chareunphol (devoji) + - Francisco Corrales Morales + - Florian CAVASIN + - Nic Wortel (nicwortel) + - Masaharu Suizu + - Luděk Uiberlay (ne0) + - Dominic Luechinger + - jsarracco + - Shevelev Vladimir (shevelev_vladimir) + - LiVsI + - Jalen Muller (jalenwasjere) + - Marc Straube + - Louis-Arnaud + - Adam Prancz (praad) + - Hubert Moutot (youbs) + - Jan Grubenbecher + - Younes OUASSI (youassi) + - kolossa + - eric fernance (ericrobert) + - Alexandre Balmes (pocky) + - Aaron Baker + - SquareInnov + - dellamowica + - Caliendo Julien + - Damien Tournoud + - Eike Send + - Robin Brisa + - Kevin Boyd + - Raistlfiren + - Daniel Klein + - Bruce Phillips + - LICKEL Gaetan (cilaginept) + - Jacek (opcode) + - Baptiste Pizzighini (bpizzi) + - David D. (comxd) + - Tristan Pouliquen (tristanpouliquen) + - PululuK + - Jens Hassler + - Hylke + - Simon Schubert (simon-schubert) + - avanwieringen + - j00seph + - Ivan Nemets + - Benjamin Laugueux + - sgautier + - Kevin Mark + - Marijn Huizendveld + - Denis Brumann + - Alexandre GESLIN (rednaxe) + - Grzegorz Dembowski (gdembowski) + - Ramzi Abdelaziz (ramzi_a) + - PéCé + - Jess + - Matt Janssen + - Camille Jouan (ca-jou) + - Kerrial (kez) + - Lambert Beekhuis (lambertb) + - Nassim LOUNADI + - pamuche + - zuhair-naqvi + - Miguel Vilata (adder) + - Vladislav Lezhnev (livsi) + - Mark Smith (zfce) + - Michel Valdrighi (michelv) + - Martin Czerwinski + - Clayton + - Wojciech Sznapka + - Ludovic REUS + - David Desberg + - Adam Mikolaj (mausino) + - harcod + - cancelledbit + - Claude Ramseyer (phenix789) + - Gaurish Sharma + - Prathap + - sblaut + - Kirill Kotov + - BorodinDemid + - iamdto (iamdto) + - David Lumaye + - Pavel Shirmanov (genzo) + - Rodrigo Capilé (rcapile) + - Quentin Fahrner (renrhaf) + - James Isaac + - Pedro Piedade + - Edym Komlan BEDY (youngmustes) + - Xbird + - Milan Pavkovic + - Jonczyk + - Mbechezi Mlanawo + - Florimond Manca + - Ladislav Kubes + - bpiepiora + - Robert Brian Gottier + - Susheel Thapa + - Андрей + - Vincent Brouté + - Hugo Clergue + - Timo Tewes + - Dries Vints + - Piotr Stankowski + - Oliver Kossin + - Robert + - Alan Farquharson + - Bill Surgenor + - Pierre Arnissolle (arnissolle) + - Szilágyi Károly Bálint + - 6e0d0a + - Terence Eden + - Peter + - Mathias STRASSER + - Inori + - Artur + - ismail mezrani (imezrani) + - Luca Suriano (lucas05) + - michael schouman (metalmini) + - Hideki Okajima (okazy) + - Ronan Pozzi (treenity) + - Jeremiah Dodds + - Fabian Becker + - Tim Herlaud + - Michael Witten (micwit) + - r-ant-2468 + - Prisacari Dmitrii + - Stephen Clouse + - fguimier + - Mykola Martynov (mykola) + - Timo Haberkern (thaberkern) + - Damien DE SOUSA (dades) + - Valyaev Ilya (rumours86) + - Dan Barrett (yesdevnull) + - Robin C + - Wouter + - Mathieu Capdeville + - Florian VANHECKE + - Zombaya + - Tim Jabs + - JT Smith + - Rudy Onfroy + - Patrick PawseyVale + - Michaël Dieudonné + - Ilya Bakhlin + - analogic + - lucchese-pd + - Philippe Villiers + - LavaSlider + - Aikaterine Tsiboukas + - New To Vaux + - Guillermo Quinteros (guquinteros) + - Hex Titan (hextitan) + - Norio Suzuki (suzuki) + - Michael COULLERET (20uf) + - Tristan LE GACQUE (tristanlegacque) + - Jérémy Halin + - Scott + - fishbone1 + - lajosthiel + - pgorod + - E Ciotti + - Jeroen + - elescot + - vihuarar + - Tom Troyer + - Sébastien FUCHS + - Vilius Grigaliūnas + - Chloé B. + - Manuel Andreo Garcia + - cirrosol + - matthieudelmas + - Ahmed Abdou (ahmedaraby) + - Calin Pristavu (calinpristavu) + - Hatem Ben (hatemben) + - Robin Cawser (robcaw) + - Jorisros (jorisros) + - Michael Dwyer (kalifg) + - Mohamed YOUNES (medunes) + - Manuele Menozzi (mmenozzi) + - Robert Went (robwent) + - Greg (kl3sk) + - scottwarren + - Michael Klein (monbro) + - Christoph Wieseke + - Przemek Maszczynski + - Sam Hudson + - piet + - Petar Petković + - stormoPL + - Bartosz Tomczak + - A goazil + - Felix Stein + - Wojciech Kania + - Ian Gilfillan + - sakul95 + - R1n0x + - Stéphane P + - rogamoore + - Jorge Sepulveda + - Lauri + - Simon Appelt + - broiniac + - Peter Hauke + - Fabian Freiburg + - Léo PLANUS + - Hari K T (harikt) + - Michel Chowanski (migo) + - M#3 + - ymc-sise + - DKravtsov + - Alexandr Kalenyuk + - Andreas Schönefeldt + - Sorin Dumitrescu (sfdumi) + - artf + - Alireza Rahmani Khalili (alireza_rahmani) + - Maxim (big-shark) + - Dirk Luijk (dirkluijk) + - Adam Lee Conlin (hades200082) + - Petru Szemereczki (hktr92) + - Jan Heller (jahller) + - Tobias Berge + - Jérémie Samson (jsamson) + - Pascal de Vink (pascaldevink) + - A S M Sadiqul Islam (sadiq) + - Emil Santi (emilius) + - Darien + - Cédric Spalvieri (skwi) + - Damien Chedan (tcheud) + - Valter Carneiro da Silva Junior (valterjrdev) + - Gabriel Birke (chiborg) + - BETARI Amine (amine_ezpublish) + - Tyler Sommer (veonik) + - chance garcia + - Antonio de la Vega + - Archie Vasyatkin + - Brian + - Ben Thomas + - Grégory Quatannens (gscorpio) + - Corentin + - Jan Klan (janklan) + - Jonathan + - Peter Gasser + - Jorick + - Jamal Youssefi + - Volen Davidov + - CaDJoU + - Mohameth + - Dilantha Nanayakkara + - wazz42 + - Brendan + - Massimo Giagnoni (mgiagnoni) + - Michael Phillips + - Brandon Mueller (fatmuemoo) + - LEFLOCH Jean-François (katsenkatorz) + - Luuk Scholten (lscholten) + - Matt Trask (matthewtrask) + - Paul Rijke (parijke) + - Anthony FACHAUX + - Paul Ferrett (paulf) + - Ronan Guilloux (ronan) + - David Ward (roverwolf) + - helmi dridi + - Marco Woehr + - Ali Sunjaya + - iarro + - Clément Barbaza + - Alexander Diebler + - Tom Egan + - Peter + - Dean Clatworthy + - Zoltan Toth-Czifra + - Juan Riquelme + - Mike Zukowsky + - Quentin Boulard + - vmarquez + - Talita Kocjan Zager (paxyknox) + - Sander Bol + - Son Tung PHAM + - Volker Thiel + - Raggok + - Benoît + - marco-pm + - VladZernov + - Julien RAVIA + - Robert Nagy + - Angelo Melonas (angelomelonas) + - nasaralla + - Rosemary Orchard + - Bruno Baguette (tournesol) + - Jean Pasdeloup + - Fabrice GARES (fabrice_g) + - Oliver Kossin + - Ignacio Aguirre + - German Bortoli (germanaz0) + - Patrik Csak + - Julien BENOIT + - Jason Aller (jraller) + - Ka (Karim Cassam Chenaï) + - e-weimann + - Greg Somers + - Andrej Rypo + - Matthias Noback (mnoback) + - heddi.nabbisen + - Marius-Liviu Balan (liv_romania) + - Brent Shaffer (bshaffer) + - Exalyon + - Maciej Łebkowski (mlebkowski) + - Javad Adib + - Jonas Wouters + - Lee Jorgensen (profmoriarty) + - Julien Gidel + - Ivan Gantsev + - Richard Perez (riperez) + - Antonio Spinelli + - Ross Deane (rossdeane) + - Pavel Jurecka + - Joel Clermont (jclermont) + - Brandin Chiu + - Sébastien Rogier (srogier) + - Arnaud Pflieger + - Roy Templeman + - Tobias Schmidt (tobias-schmidt) + - ehibes + - Jean-Philippe Dépigny + - Christian Weyand (weyandch) + - Romaxx + - I. Fournier + - Daan van Renterghem + - Alex Coventry + - Ali Yousefi (aliyousefi) + - lbraconnier2 + - ghertko + - Francis Hilaire + - vgmaarten + - Godfrey Laswai + - Stefan Topfstedt + - Nathan Vonnahme + - Quentin Brunet + - Robert Freigang (robertfausk) + - faissaloux + - oyerli + - Guillaume Ponty + - Jan Pieper + - Chris Johnson + - Tommi + - b0nd0 + - andybeak + - Pierre-Jean Leger + - vindby23 + - Damien + - Florian Blond (fblond) + - Christophe Willemsen (kwattro) + - guidokritz + - sofany + - FindAPattern + - Tom Haskins-Vaughan + - Kevin R + - Lance Bailey + - Dorozhko Anton + - Jonathan Clark + - Giulio Lastra + - Ed Poulain + - wiese + - Nietono + - Mahdi Maghrooni + - Vimal Gorasiya + - Baptiste Langlade + - Gasmi Mohamed (mohamed_gasmi) + - Angelo Galleja (ga.n) + - TavoNiievez + - Michele Carino + - Gustavo Henrique Mascarenhas Machado + - jfhovinne + - Thomas from api.video + - guiditoito + - Francois CONTE + - Danny van Wijk (dannyvw) + - Rick Ogden + - Tomáš Tibenský + - Ivan Ternovtsiy + - Thomas Lemaire + - Adamo Crespi + - Christopher Vrooman + - de l'Hamaide + - xelan + - Henrik Christensen + - João Paulo Vieira da Silva + - rayrigam + - ipatiev + - Xavier Coureau + - George Zankevich + - David Frerich + - Kris + - Linas Merkevicius + - Peter Majmesku + - srich387 + - Giuseppe Petraroli + - IamBeginnerC + - Yassine Hadj messaoud + - Oliver THEBAULT + - Arnaud + - Thomas Talbot + - Aurélien Thieriot + - abarke + - Benjamin Dos Santos + - Christopher Cardea + - ackerman + - RiffFred + - Idziak + - Krzysztof Nizioł + - alex00ds + - Michaël Mordefroy + - cvdwel + - Rafael Torres + - Ruben Petrosjan + - Filip Telążka + - Edward Kim + - Markus Mauksch + - Marko Mijailovic + - Théophile Helleboid - chtitux + - Vladimir Jimenez + - Daniel Wendler + - Kacper Gunia + - Arne + - Julien Humbert + - Rob Gagnon + - Nebojša Kamber + - pfleu + - Pouyan Azari + - Claudio Zizza + - Casey Heagerty + - kraksoft + - Claudio Galdiolo + - runephilosof-abtion + - zeggel + - Erik Trapman + - nicofrand + - markspare + - decima + - PHAS Developer + - Jonathan Cox + - Andrii Volin (angy_v) + - Florian Cellier (kark) + - Vincent Jousse + - jerzy-dudzic + - Szymon Dudziak + - Mario Alberto + - Ali Zahedi (aliz9271) + - Michel ANTOINE (antoin_m) + - Roman Martinuk + - bram vogelaar (attachmentgenie) + - Baptiste Pottier (baptistepottier) + - Benoît WERY (benoitwery) + - Boolean Type (boolean_type) + - Boris Sondagh (botris) + - Mickaël Bourgier (chapa) + - Cliff Odijk (cmodijk) + - Colin DeCarlo (colindecarlo) + - Andrew Martynjuk (crayd) + - Doug Smith (dcsmith) + - Jan Schütze (dracoblue) + - Damian Zabawa (dz) + - Dmitriy Fishman (fishmandev) + - Georgiana Gligor (gbtekkie) + - oussama khachiai (geekdos) + - Gonzalo Alonso (gonzakpo) + - Daniel Kucharski (inspiran) + - Maxime Doutreluingne (maxdoutreluingne) + - Ashen one (berbadger) + - Jay Williams (jaywilliams) + - Jelmer Snoeck (jelmersnoeck) + - Jeroen v.d. Gulik (jeroen) + - Janne Vuori (jimzalabim) + - Kane Menicou (kane_menicou) + - Dmitry Kolesnikov (kastaneda) + - Tommy Quissens (quisse) + - Arnaud B (krevindiou) + - Loïc Sapone (loic_sapone) + - Kostas Loupasakis (loupax) + - Markus Thielen (mathielen) + - Mehmet Gökalp (mehgokalp) + - gertdepagter + - Cyril Krylatov + - Michal Landsman + - Oleksandr Savchenko (asavchenko) + - Michael Smith (michaelesmith) + - Ryszard Piotrowski (richardpi) + - Ludwig Ruderstaller (rufinus) + - Nuno Ferreira (nunojsferreira) + - Nuno Pereira (nunopereira) + - Oliver Davies (opdavies) + - ousmane NDIAYE (ousmane) + - Pierre-Yves Dick (pyrrah) + - Paulo Rodrigues Pinto (regularjack) + - Richard Perez (richardpq) + - Slaven (sbacelic) + - Urs Kobald (scopeli) + - Maximilian Ruta + - James Seconde (secondejk) + - Matthew Setter (settermjd) + - Stéphane HULARD (shulard) + - Simon Rolland (sim07) + - Simon Berton (simonberton11) + - Giovanni Gioffreda (tapeworm) + - Thierry Geindre (tgeindre) + - Daniel Ancuta (whisller) + - ameotoko + - Andrey Lukin (wtorsi) + - Yannick ROGER (yannickroger) + - Danilo Sanchi (danilo.sanchi) + - Markus Virtanen + - Sebastian Klaus + - Zamir Memmedov (zamir10) + - Eric Tucker + - Frank J. Gómez + - Alex Savkov + - Andy Truong + - Etilawin + - Pedro Cordeiro + - Michael Staatz + - Rick Burgess + - Christian Oellers + - Guilherme Donato + - NicolasPion + - Tomasz Ducin (tkoomzaaskz) + - Epskampie + - Joppe de Cuyper + - Jose R. Prieto + - Raphaël Riehl + - jakumi + - Vico Dambeck + - Christophe Boucaut + - yositani2002 + - Danny + - runawaycoin + - lusavuvu + - Raphael Michel + - Samuel Wicky + - Petr Kessler + - Florian Belhomme + - KosticDusan4D + - linuxprocess + - Jon Eastman + - François MARTIN + - Chris8934 + - Postal (postal) + - Peter WONG + - Robert Koller (robob4him) + - Mickaël Blondeau (mickael-blondeau) + - Hossein Vakili + - partulaj + - Rami Dridi + - Ahmed Bouras + - Martijn Zijlstra + - Vadim Bondarenko + - Justas Bieliauskas + - Aurélien MARTIN + - Kilian Schrenk + - Andreas Larssen + - Alex-D (alexd) + - saf (asd435) + - Benoît Durand (bdurand) + - Chase Noel (chasen) + - Roman (grn-it) + - Filip Grzonkowski (grzonu) + - Jason McCallister (jasonmccallister) + - Eugene Dounar + - Qiangjun Ran (jungle) + - michael kimsal (kimsal) + - Liang Jin Chao (leunggamciu) + - Vincent Terraillon (lou-terrailloune) + - Vladimir Schmidt (morgen) + - Linas Linartas (linas_linartas) + - Timur Murtukov (murtukov) + - Nikola Kuzmanović (nkuzman) + - Eirik Alfstad Johansen (nmeirik) + - Chabbert Philippe (philippechab) + - Konstantin (phrlog) + - Rodrigo Rigotti Mammano (rodrigorigotti) + - Yosip Curiel (snake77se) + - Stefan Grootscholten (stefan_grootscholten) + - Matthieu Braure (taliesin) + - Prakash Thapa (thapame) + - Arnaud VEBER (veberarnaud) + - Sarah-eit + - sebgarwood-gl + - Lacy (200ok) + - Serge Velikanov + - Richard Miller + - Christian Kolb (liplex) + - Thomas BILLARD + - Pascal MONTOYA (pmontoya) + - Julien EMMANUEL + - Dominik Pietrzak + - Jordan Bradford + - renepupil + - wadjeroudi + - Eliú Timaná + - Andrey Melnikov + - Vincent + - fb-erik + - Quentin Thiaucourt (quentint) + - Ala Eddine khefifi + - Cosmic Mac + - Thibaut Leneveu + - Oliver Adria + - Walkoss + - Andrey Tkachenko + - AntoineRoue + - Jules Lamur + - Virginia Meijer + - Jannik + - Pierre Spring + - Crushnaut + - Shaun Simmons (simshaun) + - andrecadete + - David Schmidt + - Cesare + - fernandokarpinski + - Jordi Freixa Serrabassa + - Kiel Goodman + - Constantin Ross + - sebpacz + - Josef Vitu + - Paul Coudeville + - Jarosław Jakubowski (egger1991) + - Paweł Małolepszy (pmalolepszy) + - Guillaume MOREL + - Émile PRÉVOT + - xavierkaitha94 + - obsirdian + - Mickael GOETZ + - Valentin GRAGLIA + - figaw + - ThamiSadouk + - Charly + - phiamo + - Gytis Šk + - Илья + - Arnaud Lemercier + - Anani Ananiev + - Egidijus Girčys (egircys) + - DerStoffel + - Marek Szymeczko + - clément larrieu + - Ante Crnogorac + - Mike Bissett + - Epari Siva Kumar + - Matthias + - Giovanni Toraldo + - Andreas + - Halil Özgür + - Christopher + - illusionOfParadise + - niebaron + - Works Chan + - jordanjix + - dearaujoj + - Valerio Colella + - Robert Treacy (robwasripped) + - David Harding + - mocrates + - Andrei Petre + - Art Matsak + - asartalo + - Kevin Wojniak + - Volodymyr Stelmakh + - Morf + - Jan Myszkier + - manseuk + - Philipp Bräutigam + - tikoutare + - Kanat Gailimov + - Micha Alt + - Grégory SURACI + - Paweł Farys + - Punt + - Rafa Couto + - Gabriel Theron + - Ian Mustafa + - Thierry Goettelmann + - Sven Luijten + - Brendan Lawton + - Nikita + - Luca Lorenzini + - wbob + - Evgeniy Gavrilov + - Al Bunch + - Clorr + - Daniele Ambrosino + - tobiasoort + - Tymoteusz Motylewski + - fdarre + - Zenobius + - Mbechezi Mlanawo + - David McKay + - ipf + - Andrii Sukhoi + - Cory Becker + - Florian Moser + - Kolja Zuelsdorf + - MWJeff + - Andrius Ulinskas (andriusulins) + - Nico + - kruglikov + - Kevin Raynel + - DanielEScherzer + - Jay-Way + - Felipe Martins + - Lee Boynton + - Jeremy Emery + - beejaz + - tmihalik + - Steve Winter + - pcky + - Parthasarathi GK + - m_hikage + - norfil + - adreeun + - Giulio De Donato + - Sylvain Lelièvre + - Michaël Perrin + - Chris Halbert + - temenb + - Luc + - damienleduc + - Carwyn Moore + - Nico Schoenmaker + - Kevin + - GiveMeAllYourCats + - Matthew Thomas + - wkania + - EtienneHosman + - Matt Kirwan + - Daniel Kozák + - z38 + - Bartek Nowotarski + - mimol91 + - Daniel Santana + - Marius Balčytis + - Rick West + - Richard Hoar + - Reza + - Slobodan Stanic + - Alex Salguero + - manoakys + - Roberto Lombi + - Łukasz Korczewski + - rklaver + - Joe Thielen + - marcusesa + - Pierre Trollé + - Daniele Orler + - Cyril Mouttet (placid2000) + - Robert Parker (yamiko_ninja) + - Patrik Pacin + - Piotr Strugacz + - René Backhaus + - Kieran Black + - guesmiii + - Danny Witting + - morrsky + - Thibaut Selingue + - Dukagjin Surdulli + - Max R + - Etshy + - E Demirtas + - antoinediligent + - Geert Clerx + - Maciej Kosiarski + - royswale + - fberthereau + - Mark Fischer, Jr + - muxator + - Franz Holzinger + - Julian Wagner + - Deepak Kumar + - Nikolai Plath + - jeanhadrien + - Felix Schnabel + - Kevin Wojniak + - Pierre Bobiet + - Tobias Hermann + - Greg Pluta + - Dmitriy + - Michał Wujas + - Marco Barberis + - homersimpsons + - Tobias Sette + - Katharina Störmer + - Javier Espinoza + - Pierre + - Karin van den Berg + - Dhanushka Samarakoon + - Philipp Christen + - Serhii Polishchuk + - Alex Kyriakidis + - Ali Arfeen + - sebio + - Lamari Alaa + - jpache + - Nelson da Costa + - Med Ghaith Sellami + - Jake Bell + - Lars + - VisionPages + - Seikilos + - CodyFortenberry + - nietonfir + - Hugo Locurcio + - Romain GRELET + - Andréas Hanss + - sr972 + - Adam Duffield + - Harry van der Valk + - pavemaksim + - aykin + - joelindix + - denniskoenigComparon + - Vitaliy Zurian + - Иван + - Ozan Akman + - Benjamin Porquet + - Alex Oroshchuk + - Pjotr Savitski + - Jean-David Daviet + - Olivier Lechevalier + - Leny BERNARD + - Michael H + - Hocdoc + - Gabriel Bugeaud + - Mikhail Kamarouski + - Sergey Belyshkin + - Cellophile + - Gaetan Rouseyrol + - scriptibus + - Jace25 + - Sylvain Ferlac + - Kamil Breguła + - kevin + - Gennadi Janzen + - András Debreczeni + - Mustafa Ehsan Alokozay + - Marco + - Artem Henvald + - Nikita Nyatin + - David Baucum + - Jeroen Seegers + - Rémi Andrieux (pimolo) + - Veltar + - Matheus Pedroso + - marcagrio + - Gilles Fabio + - Kélian Bousquet + - TheSidSpears + - Ezequiel Esnaola + - GNi33 + - Andrew Cherabaev + - Alexandre Bertrand + - peaceant + - Mohsen + - adreeun + - MaharishiCanada + - GoT + - Jesús Miguel Benito Calzada (beni0888) + - jdevinemt + - Piotr Potrawiak + - Yann Klis + - Christoph Schmidt + - zeroUno + - Mickaël + - jenyak + - Jan Richter + - Pinchon Karim + - Arndt H. Ziegler + - Xavier + - matteopoile + - dpfaffenbauer + - Oleg Zinchenko + - Menachem Korf + - proArtex + - fplante + - Ruslan + - Nelu Buga + - Rylix + - Arthur Hazebroucq + - JHGitty + - Pedro Gimenez + - Johan de Jager + - Thierry Thuon + - Stephan Dee + - Shamsi Babakhanov + - Charles Winebrinner + - timo002 + - Xavier RIGAL + - Enache Codrut + - Vladimir Jimenez + - mismailzai + - radnan + - Iker Ibarguren + - Bartek Chmura + - Alessio Barnini + - Nicolas Mugnier + - Nitaco + - Alex Normand + - Fouad + - Lucas Pussacq + - Alexandre HUON + - apiotrowski + - vladyslavstartsev + - Christian Alexander Wolf + - Vladimir Gavrylov + - rschillinger + - The Phrenologist (phreno) + - tabbi89 + - John Spaetzel + - Harald Leithner + - Reinier Butôt + - Levi Durfee + - Willem Stuursma-Ruwen + - Théo FIDRY + - Benj + - Maximilian Bosch + - richardmiller + - David + - Sakulbl + - Elbert van de Put + - antonioortegajr + - Florian Rusch + - zulkris + - Dzamir + - Boris Shevchenko + - Kevin Warrington + - Peyman Mohamadpour + - Quentin ADADAIN + - Andrei + - Robin Gloster + - Bram de Smidt + - Zahir Saad Bouzid + - Jonathan Holvey + - pavdovlatov + - Linus Karlsson + - Jason Johnstone + - Pim van Gurp + - Szurovecz János + - Υоаnn B + - Adiel Cristo + - BrnvrlUoeey + - beachespecially + - mbehboodian + - Sascha Egerer + - Martin Černý + - Yves ASTIER + - Dmitri Perunov + - Daniel Karp + - Laurent Marquet + - Jure Žitnik + - Bruno Casali + - Kevin de Heer + - fullbl + - Christian Heinrich + - Jose Diaz + - kohkimakimoto + - Faizan Shaikh + - Frederik Schubert + - Stacy Horton + - Sébastien Lourseau + - Nathan Giesbrecht + - Sebastian Bergmann + - Paweł Tekliński + - Michaël Demeyer + - AdrianBorodziuk + - Edwin + - ruslan-fidesio + - mvanmeerbeck + - phoefnagel + - ioanok + - Chris Bitler + - Mihail Kyosev (php_lamer) + - Alexey Rogachev + - Thomas LEZY + - Matěj Humpál + - Gintautas + - guangle + - Kwadz + - Gergely Pap + - sparrowek + - Travis Carden + - Guillaume Lasset + - Léo + - berbeflo + - Dmytro Bazavluk + - ismail BASKIN + - Simon Epskamp + - Theo Tzaferis + - Mantas Varatiejus + - Josh Kalderimis + - kallard1 + - Alexander Dubovskoy + - hamzabas + - Leo + - sirprize + - VosKoen + - ubick + - Aurélien Morvan + - timglabisch + - Deng Zhi Cheng + - alexsaalberg049 + - Dincho Todorov + - Mohammad + - Richard Tuin (rtuin) + - Gabriel Albuquerque + - John Doe + - Sven Liefgen + - Greg Berger + - Alex Soyer + - Clément + - Massimo Ruggirello + - Artem Ostretsov + - ondra + - Antonio Jesús + - Nextpage + - Robert Podwika + - Julien Janvier + - Dan Zera + - Elliot + - Francesco Abeni + - Denis Dudarev + - Rémy Issard + - hanneskaeufler + - progga + - Jevgenijus Andrijankinas + - concilioinvest + - Paweł Czyżewski + - Richard Lynskey + - Clement Ridoret + - Bob D'Ercole + - Erwann MEST (_kud) + - Abdellatif Derbel (abdellatif) + - Remi + - Mark Brennand (activeingredient) + - Adrián Ríos (adridev) + - Aaron Edmonds (aedmonds) + - Jérôme (ajie62) + - Alejandro García Rodríguez (alejgarciarodriguez) + - Alfonso Machado Benito (almacbe) + - Jérémy LEHERPEUR (amenophis) + - Amine Matmati (aminemat) + - Anand (anandagra) + - Andrew D Battye (andrew_battye) + - Atchia Mohammad Annas Yacoob (annas-atchia) + - Alexey Bakulin (bakulinav) + - Andries van den Berg (ansien12) + - Anthony Sterling (anthonysterling) + - Łukasz Bownik (arkasian) + - Arnaud Salvucci (arnucci) + - Andrey Shark (astery) + - Alexander Vorobiev (avorobiev) + - Aldo Zarza (azarzag) + - Babar Al-Amin (babar) + - Norman Soetbeer (battlerattle) + - Fabien Lasserre (fbnlsr) + - Behram ÇELEN (behram) + - Belgacem TLILI (belgacem) + - belghiti idriss (belghiti) + - Mathieu + - Sebastian G. (bestog) + - Clément Notin + - Dennis Bijsterveld (bijsterdee) + - Adam Boardman (boardyuk) + - Bartłomiej Zając (bzajac) + - Alistair (phiali) + - Catalin Criste (catalin) + - Alexander Kim + - Jean Pasqualini + - Catalin Minovici (catalin_minovici) + - Carlos Zuniga (charlieman) + - Christiaan Baartse (christiaan) + - V. K. (cn007b) + - Cosmin Mihai Sandu (cosminsandu) + - Kristof Coomans (cyberwolf) + - CHARBONNIER (cyrus) + - Dalius Kalvaitis (daliuskal) + - Davi Tavares Alexandre (davialexandre) + - David Negreira Rios (davidn) + - Derek Roth (derekroth) + - Abdelilah Boudi (devsf3) + - Timotheus Israel (dieisraels) + - Davor Plehati (dplehati) + - Alex Ghiban (drew7721) + - Dan Tormey (dstormey) + - Dmitry Vapelnik (dvapelnik) + - Marc Michot (eclae) + - Fatih Ergüven (erguven) + - Erwan Richard (erichard) + - Benjamin Toussaint + - Erik (erikroelofs) + - Sergey Falinsky (falinsky) + - Florian Semm (floriansemm) + - Fayez Naccache (fnash) + - Frank Stelzer (frastel) + - Gabriel Théron (g.theron) + - Simon Perdrisat (gagarine) + - Jérémy Jarrié (gagnar) + - Patrick Mota (ganon4) + - David Rolston (gizmola) + - Vadym (rvadym) + - Benjamin Hubert (gouaille) + - Greg Box (gregfriedrice) + - Victor Melnik (gremlin) + - Grzegorz Balcewicz (gbalcewicz) + - Guillaume Sylvestre (gsylvestre) + - Guillaume HARARI (guillaumeharari) + - Augustin Chateau (gus3000) + - Houssem ZITOUN + - Vladyslav Riabchenko + - Cristiano Cattaneo (ccattaneo) + - Daniel Platt (hackzilla) + - ABOULHAJ Abdelhakim (hakim_aboulhaj) + - Hans Stevens (hansstevens) + - Thomas Rudolph (holloway) + - Nik G (iiirxs) + - Tim Werdin + - Hugo Nicolas (jacquesdurand) + - Janko Diminic (jankod) + - Jonathan Lee (jclee2) + - Nico Th. Stolz (jeireff) + - Jose F. Calcerrada (jfcalcerrada) + - Jibé (jibe0123) + - jean-marie leroux (jmleroux) + - Joan Teixido (joanteixi) + - Joshua Morse (joshuamorse) + - James Cryer (jrcryer) + - Julien Chaumond (julien_c) + - Julius (julius1) + - rs + - Kenan Kahrić (kahric) + - Karsten Gohm (kasn) + - Kik Minev (kikminev) + - Kobe Vervoort (kobevervoort) + - Philip Ardery + - Konrad pap (konrados) + - Vincent AMSTOUTZ (vincent_amstz) + - Korstiaan de Ridder (korstiaan) + - Leonardo Losoviz (leoloso) + - Ricardo Peters (listerical) + - lobodol (lobodol) + - Louis Racicot (lord_stan) + - LOUVEL Mathieu (louvelmathieu) + - Maikel Ortega Hernández (maikeloh) + - imam harir (luxferoo) + - Joachim Martin (michaoj) + - Kevin Papst + - Pierre Maraitre + - Kévin LE LOUËR + - Marko Kunic (kunicmarko20) + - Eduardo Thomas Perez del Postigo (aruku) + - Paulius Masiliūnas (pauliuz) + - Fabian Becker + - seangallavan + - Maninder Singh (maninder) + - Rémy Vuong (rvuong) + - Manuel Agustín Ordóñez (manuel_agustin) + - Martijn Gastkemper (martijngastkemper) + - samson daniel (samayo) + - Martin Ninov (martixy) + - Manuel Transfeld + - Aleksander Cyrkulewski (martyshka) + - Sam Van der Borght (samvdb) + - Matthieu Danet (matthieu-tmk) + - Carlos Jimenez (saphyel) + - Maurice Svay (mauricesvay) + - Lorenzo Milesi (maxxer) + - Sylvester Saracevas (saracevas) + - Maximilien BERNARD (mb3rnard) + - Marius Büscher (mbuescher) + - Sebastián Poliak (sebastianlpdb) + - Mindaugas Liubinas (meandog) + - AntoJ (merguezzz) + - Csaba Maulis (senki) + - Simone Gentili (sensorario) + - Sergey Podgornyy (sergey_podgornyy) + - Marcel Serra Julià (serrajm) + - Sethunath K (sethunath) + - Woody Gilk (shadowhand) + - Wil Moore (wilmoore) + - Shambhu Kumar (shambhu384) + - Yuri Tkachenko (tamtamchik) + - Simon Van Accoleyen (simonvanacco) + - Slava Belokurski (slavchoo) + - Pol Romans (snamor) + - Steven Chen (squazic) + - Stefan Blanke (stedekay) + - Nicolae Astefanoaie (stelu26) + - Paris mikael (stood) + - Stanislav Zakharov (strannik) + - Sven (svdv22) + - Patrik Gmitter (patie) + - Sven Zissner (svenzissner) + - Artur 'Wodor' Wielogorski + - Jeroen + - Panda INC (pandalowry) + - Kevin Pires (takiin) + - Björn Fromme (bjo3rn) + - Gabriel Pillet (tentacode) + - Toni Conca (tonic) + - Tom Schuermans (tschuermans) + - Attila Egyed (tsm) + - Unai Roldán (unairoldan) + - Varun Agrawal (varunagw) + - Josh Freeman (viion) + - Marvin Butkereit + - Vivien Tedesco (vivient) + - skipton-io + - Daniel (voodooprograms) + - WILLEMS Laurent (willemsl) + - Willem-Jan Zijderveld (wjzijderveld) + - Wojciech Międzybrodzki (wojciechem) + - Alexandre Mallet (woprrr) + - Paulius Podolskis (wsuff) + - xthiago (xthiago) + - Karel (xwb) + - Daniel LIma (yourwebmaker) + - Yuriy Sergeev (youser) + - Ziad Jammal (ziadjammal) + - Zsolt Javorszky (zsjavorszky) + - Ivan Zugec (zugec) + - Lukas W + - babache + - zan-vseved + - manu-sparheld + - ArlingtonHouse + - Gus + - Reza Rabbani + - yordandv + - mehlichmeyer + - Jens Pliester + - Benjamin Sureau + - Krap + - David Vigo + - KalleV + - Christopher Tatro + - Pooyan Khanjankhani + - Ellis Benjamin + - Sam Jarrett + - Sela + - Nelson da Costa + - Andrea Bergamasco (vjandrea) + - Axel Vankrunkelsven + - snroki + - jivot + - miqrogroove + - Oussama GHAIEB (oussama_tn) + - Thao Nguyen (thaowitkam) + - Christophe Meneses + - Sudhakar Krishnan + - Michaël Perrin + - Kevin + - Kevin + - Christian Schaefer (caefer) + - Hugo Casabella (casahugo) + - Charles Pourcel (ch.pourcel) + - Stephan Savoundararadj (lkolndeep) + - Jon Cave + - Travis Yang (oopsfrogs) + - Francisco Javier Aceituno (javiacei) + - Jo Meuwis (jo_meuwis) + - Joel Costa (joelrfcosta) + - Maxim Spivakovksy (lazyants) + - Lucian Tugui (luciantugui) + - Mehdi Tazi (mehditazi9) + - Michał (mleczakm) + - Gyula Szabó (szabogyula) + - Tomas Nemeikšis (niumis) + - tamir van-spier (tamirvs) + - Joe Mizzi (themizzi) + - Thomas Lomas (tomlomas) + - Kristijan Stipić (stipic) + - Poulette Christophe (totof6942) + - Omar Brahimi (omarbrahimi) + - Sebastian Blum (sebiblum) + - makmaoui + - Olivier Revollat (o_revollat) + - juliendidier + - Michael Cullum (unknownbliss) + - Vincent Amstoutz + - Aurélien ADAM (aadam) + - Arnaud Thibaudet (kojiro) + - Alessandro Podo + - Fabien Schurter + - Michał Szczech (miisieq) + - Carlos Reig (statu) + - Nico Hiort af Ornäs + - Ian Kevin Irlen (kevinirlen) + - ifiroth + - Jordan Aubert (jordanaubert) + - Nicolas GIRAUD (niconoe) + - Romain Card + - Ilya Bakhlin Lebedev + - Alessandro Podo + - Hamza Makraz + - Pierre MORADEI + - Julien "Nayte" Robic + - Niklas + - Turdaliev Nursultan (nurolopher) + - Shamil Nunhuck (shamil) + - Bart Vanderstukken (sneakyvv) + - Spomky + - Thomas Choquet (tchoquet) + - Marcus Stöhr + - Denis Rendler + - Simon Daigre (simondgre) + - Markus Weiland (advancingu) + - Matheo D + - romain + - Jacob Tobiasz (jakubtobiasz) + - Maxime Douailin + - Jean-François Lépine (halleck45) + - Sait KURT (deswa) + - Maarten de Keizer (maartendekeizer) + - Marwâne (beamop) + - Jannes Drijkoningen (jannesd) + - Kilian Riou (redheness) + - Alexandre Gérault (alexandre-gerault) + - Thomas Choquet (chqthomas3) + - Григорий + - Barun + - Zéfyx + - Pierre Sv (rrr63) + - Denis Soriano (dsoriano) + - Laurent Marquet + - Daniel Garzon (arko) + - Kevin T'Syen (noscope) + - Nehal Gajjar + - jmangarret + - norbert-n + - Vladimir + - Thomas (razbounak) + - Aymen Bouchekoua (nightfox) + - Jan + - Augustin Delaporte + - asandjivy + - YummYume + - Leanna Pelham + - Daniel F. (ragtek) + - Adrien LUCAS + - twisted1919 + - fbuchlak + - Kevin + - Mrtn Schndlr + - Ricardo Rentería + - Sven Petersen + - Yoan Bernabeu + - Simon Riedmeier (simonsolutions) + - Steven DUBOIS (stevenn) + - Colin Poushay (poush) + - Hugo Seigle + - Hendrik Pilz (hendrikpilz) + - Rick Kuipers + - Vancoillie + - optior + - Christoph Grabenstein + - Benoit Jouhaud (bjouhaud) + - David + - matheo + - Jan Christoph Beyer + - Josenilton Junior (zavarock) + - kempha + - Simon + - Marie CHARLES (mariecharles) + - Matijn Woudt + - Valentin GARET (vgaret) + - Nicolas Rigaud + - Jonathan Huteau (jonht) + - Pierre Joye (pierre) + - lucbu + - Bastien70 + - Zbigniew Czapran (zczapran) + - Sander Verkuil (sander-verkuil) + - Fabien (fabiencambournac) + - VelvetMirror + - Bryan J. Agee + - Niels Vermaut (nielsvermaut) + - Fabien Papet + - yoye + - Игорь Дмитриевич Чунихин (6insanes) + - Stephan + - Krzysztof Ilnicki (poh) + - Cassian Assael (crozet) + - Matthew Ratzke (flyboarder) + - Sven Scholz + - Guillaume PARIS (gparis) + - Xavier Laviron (norival) + - Michael Grinko + - Phil Wright- Christie (philwc) + - Edson Medina + - Denys Pasishnyi (dpcat237) + - Plamen + - (H)eDoCode + - Maximilian + - Iv Po + - Greg Berger + - Frédéric Lesueurs + - Matthieu Renard + - Jonas De Keukelaere + - Luc Hidalgo (luchidalgo) + - Julien Dubois + - Ondrej Vana (kachnitel) + - Marchegay (xaviermarcheay) + - Maxime Steinhausser + - Bart Heyrman + - Morgan Thibert (o0morgan0ol) + - Baptiste Fotia (zak39) + - LesRouxDominerontLeMonde + - Yoann B (yoann) + - Johan de Jager (dejagersh) + - Jacob Dreesen + - Marco Polichetti + - Joe + - Jérémy CROMBEZ + - Raphaël Davaillaud + - vesselind + - Joseph Bielawski + - Yannick + - Nieck Moorman + - John Ballinger + - Bob van de Vijver + - github-actions[bot] + - Nicolas Lœuillet (nicosomb) + - Antoine Durieux (adurieux) + - Roger Webb (webb.roger) + - sander Haanstra (milosa) + - Denis (ruff3d) + - Pierre-Emmanuel CAPEL (pecapel) + - Lucas Courot (lucascourot) + - Pavel Nemchenko (nemoipaha) + - Jerome Guilbot (papy_danone) + - Adam + - Ahmed Siouani (ahsio) + - matthieu88160 + - Grant Gaudet + - bdujon + - Simon BLUM (simonblum) + - Tom Schwiha (tomschwiha) + - Thomas Miceli (tomus) + - stehled + - healdropper + - Sebastian Kuhlmann (zebba) + - Saidou GUEYE + - Yoan Arnaudov (nacholibre) + - Florian + - Michael Petri (michaelpetri) + - Levin + - Mark Deanil Vicente (dvincent3) + - Laurent Moreau (laulibrius) + - Robin Weller + - Benjamin Zaslavsky + - Mart Kop + - Ruud Kamphuis + - Dmytro + - Yakov Lipkovich + - Fabien Bourigault + - Leonard Simonse + - Rhodri Pugh + - Tristan Darricau + - John Williams + - Nadim AL ABDOU + - Mateusz Anders + - Wanne Van Camp + - Jasperator + - anton + - Marius Adam + - Vladimir Jimenez + - Robin + - Gary Kovar + - Jalen + - Tomi Saarinen (tomis) + - Issam KHADIRI (ikhadiri) + - Wagner Nicolas (n1c01a5) + - Lorenzo Ruozzi (lruozzi9) + - Marko Kaznovac + - DOEO + - Marc Wustrack (muffe) + - Loïc Caillieux (loic.caillieux) + - Alexey Pyltsyn (lex111) + - benti + - Dennis de Best (monsteroreo) + - Ludwig Bayerl (lbayerl) + - Carlos Sánchez (carlossg00) + - Darien Hager + - Jérémy Jumeau (jeremyjumeau) + - Paweł Krynicki (kryniol) + - Tamás Molnár (moltam) + - Robin Willig (dragonito) + - Robert Parker (yamiko) + - Pedro Nofuentes (pedronofuentes) + - mojzis + - Fanny Gautier + - Alexey Samara + - gong023 + - Jan Dorsman + - xaav + - Aurelijus Banelis (aurelijusb) + - Christophe Debruel (krike06) + - shkkmo + - Yaroslav Kiliba + - Tony Cosentino + - burki94 + - Kostya + - alexchuin + - Szyszewski + - Nils Silbernagel + - Adrien + - Andrei Chugunov + - Jan G. (jan) + - Ahmed Raafat (luffy14) + - azielinski + - Thibault Gattolliat (crovitche) + - Dimitar + - Florent Destremau + - Marc Neuhaus (mneuhaus) + - Niklas Grießer + - Cullen Walsh + - damien-louis + - Olena Kirichok + - Julian Mallett (jxmallett) + - Romain Norberg + - Steven + - hector prats (jovendigital) + - Koen van Wijnen (infotracer) + - Michael Y Kopinsky (mkopinsky) + - Roger Llopart Pla (lumbendil) + - David Zuelke (dzuelke) + - Abdelkader Bouadjadja (medinae) + - Eduardo Gulias Davis + - Dmitry Vishin (wishmaster) + - Alfonso M. García Astorga (alfonsomga) + - José María Sanchidrián (sanmar) + - Diego Gullo (bizmate) + - martin05 + - Bruno Vitorino + - Noel + - beram (beram) + - Markus Mauksch + - Mitchell + - Avindra Goolcharan + - Florent + - roga + - Timon F. (timon) + - Denis-Florin Rendler + - Titouan B + - IlhamiD + - Alexander Marinov + - Manoj Kumar + - Nazar Mammedov + - Maxime Nicole + - pecapel + - Cadot.eu & Co. + - Matthias Gutjahr (mattsches) + - Dan Abrey + - Matthieu Lempereur (matthieulempereur) + - Sylvain Blondeau + - Maelan LE BORGNE (maelanleborgne) + - jmsche + - Rutger + - Tim Glabisch + - g@8vue.com + - danjamin + - Ondřej Vodáček + - mark2016 + - Petr (rottenwood) + - Łukasz Pior (piorek) + - revollat + - Jorick Pepin (jorick) + - micter59 + - unknown + - Rob + - Tajh Leitso (tajh) + - Wolfgang Weintritt (wolwe) + - Bram van Leur (bvleur) + - BooleanType + - Luke Kysow + - Zac Sturgess (zsturgess) + - t.le-gacque + - Hugo Locurcio + - Mohd Shakir Zakaria (mohdshakir) + - Yohann Durand (yohann-durand) + - Konstantin Tjuterev (kostiklv) + - Alexandru Furculita ♻ + - amelie le coz (amelielcz) + - Thibaud BARDIN (irvyne) + - Jérémy BLONDEAU (jblondeau2) + - Adoni Pavlakis + - valepu + - Hans Allis (hansallis) + - Marek Brieger (polmabri) + - Lluis Toyos (tolbier) + - Jarvis Stubblefield (ballisticpain) + - Mathieu Ducrot (mathieu-ducrot) + - Daniel Santana + - Adam W (axzx) + - Francisco Calderón (fcalderon) + - HONORE HOUNWANOU (mercuryseries) + - yanickj + - Evan Owens + - S Berder + - Félix Fouillet + - Tobias Berchtold + - Pavel Bezdverniy + - Dr. Balazs Zatik + - Carsten Blüm (bluem) + - Omer Karadagli (omer) + - OrangeVinz (orangevinz) + - ThomasGallet + - Jarek Ikaniewicz + - Daniel Degasperi (ddegasperi) + - Milan (milan) + - Patrick Bußmann + - Kamil Kuzminski (qzminski) + - Happy (ha99ys) + - AlexKa + - Foksler (foksler) + - Sacha Durand (sacha_durand) + - Tom Grandy + - Epskampie + - Francesco Tassi (ftassi) + - Jason Bouffard (jpb0104) + - Katharina Floh (katharina-floh) + - Christopher + - Nicolas Hart (nclshart) + - Christopher Moll + - Gianluca Farinelli (rshelter) + - Jorge Luis Betancourt (jorgelbg) + - Yannick (yannickdurden) + - Dynèsh Hassanaly (dynesh) + - Tom Maaswinkel (thedevilonline) + - Thibault Miscoria (tmiscoria) + - Alexpts (alexpts) + - Michiel Missotten (zenklys) + - Benjamin Clay (ternel) + - Mark Challoner + - Jacob Mather (jmather) + - Fabien Bourigault + - Adil YASSINE ✌️ (sf2developer) + - Savvas Alexandrou (savvasal) + - Tim Jabs + - LucileDT + - Open Orchestra (open-orchestra) + - Salavat Sitdikov (sitsalavat) + - Iulian Popa (iulyanp) + - AmalricBzh + - htmlshaman1 + - Aleksandr Frolov (thephilosoft) + - Valantis Koutsoumpos + - Slava Fomin II (s-fomin) + - Raúl Continente (raulconti) + - Daniel West (silverbackdan) + - Martin Bens + - Robert + - Ross Cousens + - Murilo Lobato (murilolobato) + - Tim Krase + - Kendrick + - Bastien Picharles (kleinast) + - Metfan (metfan) + - Sylvain Combes (sylvaincombes) + - Daniel Haaker (dhaaker) + - Mark (markchicobaby) + - Lenkov Michail (alchimik) + - Florent DESPIERRES (fdespierres) + - Anton + - Cyril Lussiana + - Valentin Silvestre (vasilvestre) + - Vincent Le Biannic + - Adam Szaraniec (mimol) + - Abdellah Ramadan (abdellahrk) + - Tim Hovius (timhovius) + - Julian (c33s) + - Ryan Castle (ryancastle) + - Chad Meyers (nobodyfamous) + - Ben Huebscher (huebs) + - William JEHANNE (william_jehanne) + - mhor (mhor) + - richardudovich + - pathmissing + - Soltész Balázs + - Ben Glassman (benglass) + - Thomas Botton (skeud) + - Mohammed Rhamnia (rmed19) + - Thomas Talbot + - Douglas Naphas + - Ilya Antipenko + - karzz + - Markus Frühauf + - Damien Carrier (mirakusan) + - Nassim + - Enzo Santamaria + - Jonathan Finch + - Herbert Muehlburger + - Dawid Królak (taavit) + - Toni Peric + - Danil Pyatnitsev (pyatnitsev) + - Julien Bonnier (jbonnier) + - Geert Eltink + - Martin Melka + - Bert Van de Casteele + - Olivier Bacs (obax) + - Ayyoub BOUMYA (aybbou) + - Phil Moorhouse (lazymanc) + - Dorthe Luebbert (luebbert42) + - Sylvain + - Michelle Sanver (michellesanver) + - Rafael Mello (merorafael) + - Arthur Hazebroucq + - Michel D'HOOGE (mdhooge) + - Yair Silbermintz (mrglass) + - Patrick McAndrew (patrick) + - Kirill Baranov (u_mulder) + - Mynyx + - Artur Weigandt + - Baptiste Langlade + - Amitay Horwitz (amitayh) + - Manel Sellés (manelselles) + - ahinkle + - Lucas Nothnagel (scriptibus) + - Egidijus Gircys + - fridde + - Evgeniy Guseletov (dark) + - Edoardo Rivello (erivello) + - Malte N (hice3000) + - Elias Van Ootegem + - Boissinot (pierreboissinotlephare) + - Jan De Coster + - Sam Hudson + - Marcus Schwarz From 2bb6ff42e52195fcafb70ab7c5de8beb8f3423b6 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 28 Jun 2025 10:14:51 +0200 Subject: [PATCH 63/63] Update VERSION for 6.4.23 --- 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 91c143f34298c..04f788167c5f5 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.23-DEV'; + public const VERSION = '6.4.23'; public const VERSION_ID = 60423; public const MAJOR_VERSION = 6; public const MINOR_VERSION = 4; public const RELEASE_VERSION = 23; - public const EXTRA_VERSION = 'DEV'; + public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '11/2026'; public const END_OF_LIFE = '11/2027';