From ef326513c577095b7d6ab75f49d5f3ef60d88710 Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Mon, 13 May 2013 22:20:18 +0100
Subject: [PATCH] Issue #1977570 by RobLoach: Update third-party vendors and
 fix composer.json

---
 composer.json                                 |   36 +-
 composer.lock                                 |  317 ++--
 core/.gitignore                               |   16 +
 core/vendor/.gitignore                        |   14 -
 core/vendor/autoload.php                      |    2 +-
 core/vendor/composer/ClassLoader.php          |   39 +-
 core/vendor/composer/autoload_classmap.php    |  690 ++++-----
 core/vendor/composer/autoload_namespaces.php  |   52 +-
 core/vendor/composer/autoload_real.php        |   12 +-
 core/vendor/composer/include_paths.php        |   20 +-
 core/vendor/composer/installed.json           | 1349 +++++++++--------
 .../common/Guzzle/Common/Collection.php       |   64 +-
 .../guzzle/common/Guzzle/Common/Version.php   |    2 +-
 .../vendor/guzzle/http/Guzzle/Http/Client.php |   13 +-
 .../http/Guzzle/Http/Curl/CurlHandle.php      |    7 +
 .../guzzle/http/Guzzle/Http/QueryString.php   |    2 +
 .../http/Guzzle/Http/RedirectPlugin.php       |    4 +-
 .../guzzle/http/Guzzle/Http/composer.json     |    4 +-
 core/vendor/kriswallsmith/assetic/.travis.yml |   16 -
 .../kriswallsmith/assetic/CHANGELOG-1.1.md    |   11 +
 core/vendor/kriswallsmith/assetic/LICENSE     |    2 +-
 core/vendor/kriswallsmith/assetic/README.md   |   46 +-
 .../kriswallsmith/assetic/composer.json       |   62 +-
 .../kriswallsmith/assetic/docs/en/build.md    |   32 -
 .../kriswallsmith/assetic/docs/en/concepts.md |  129 --
 .../kriswallsmith/assetic/docs/en/define.md   |  145 --
 .../kriswallsmith/assetic/docs/en/index.md    |    7 -
 .../assetic/docs/en/introduction.md           |   21 -
 .../kriswallsmith/assetic/docs/ja/build.md    |   30 -
 .../kriswallsmith/assetic/docs/ja/concepts.md |  121 --
 .../kriswallsmith/assetic/docs/ja/define.md   |  140 --
 .../kriswallsmith/assetic/docs/ja/index.md    |    7 -
 .../assetic/docs/ja/introduction.md           |   18 -
 .../kriswallsmith/assetic/phpunit.travis.xml  |   39 -
 .../kriswallsmith/assetic/phpunit.xml.dist    |   42 -
 .../assetic/src/Assetic/Asset/AssetCache.php  |    2 +-
 .../src/Assetic/Asset/AssetCollection.php     |   11 +-
 .../Asset/AssetCollectionInterface.php        |   16 +-
 .../src/Assetic/Asset/AssetInterface.php      |    2 +-
 .../src/Assetic/Asset/AssetReference.php      |    2 +-
 .../assetic/src/Assetic/Asset/BaseAsset.php   |    7 +-
 .../assetic/src/Assetic/Asset/FileAsset.php   |    9 +-
 .../assetic/src/Assetic/Asset/GlobAsset.php   |    7 +-
 .../assetic/src/Assetic/Asset/HttpAsset.php   |   15 +-
 .../AssetCollectionFilterIterator.php         |    2 +-
 .../Iterator/AssetCollectionIterator.php      |    5 +-
 .../assetic/src/Assetic/Asset/StringAsset.php |    2 +-
 .../assetic/src/Assetic/AssetManager.php      |    4 +-
 .../assetic/src/Assetic/AssetWriter.php       |    5 +-
 .../assetic/src/Assetic/Cache/ApcCache.php    |    2 +-
 .../assetic/src/Assetic/Cache/ArrayCache.php  |   58 +
 .../src/Assetic/Cache/CacheInterface.php      |    2 +-
 .../assetic/src/Assetic/Cache/ConfigCache.php |    2 +-
 .../src/Assetic/Cache/ExpiringCache.php       |    2 +-
 .../src/Assetic/Cache/FilesystemCache.php     |    2 +-
 .../src/Assetic/Exception/Exception.php       |    2 +-
 .../src/Assetic/Exception/FilterException.php |    2 +-
 .../Extension/Twig/AsseticExtension.php       |    4 +-
 .../Extension/Twig/AsseticFilterFunction.php  |    2 +-
 .../Extension/Twig/AsseticFilterInvoker.php   |    2 +-
 .../Assetic/Extension/Twig/AsseticNode.php    |    2 +-
 .../Extension/Twig/AsseticTokenParser.php     |    2 +-
 .../Extension/Twig/TwigFormulaLoader.php      |    4 +-
 .../Assetic/Extension/Twig/TwigResource.php   |    2 +-
 .../Assetic/Extension/Twig/ValueContainer.php |   79 +
 .../src/Assetic/Factory/AssetFactory.php      |   10 +-
 .../src/Assetic/Factory/LazyAssetManager.php  |    2 +-
 .../Factory/Loader/BasePhpFormulaLoader.php   |    2 +-
 .../Factory/Loader/CachedFormulaLoader.php    |    2 +-
 .../Factory/Loader/FormulaLoaderInterface.php |    2 +-
 .../Loader/FunctionCallsFormulaLoader.php     |    2 +-
 .../Resource/CoalescingDirectoryResource.php  |    2 +-
 .../Factory/Resource/DirectoryResource.php    |    6 +-
 .../Assetic/Factory/Resource/FileResource.php |    2 +-
 .../Resource/IteratorResourceInterface.php    |    2 +-
 .../Factory/Resource/ResourceInterface.php    |    2 +-
 .../Factory/Worker/CacheBustingWorker.php     |   78 +
 .../Factory/Worker/EnsureFilterWorker.php     |    2 +-
 .../Factory/Worker/WorkerInterface.php        |    2 +-
 .../src/Assetic/Filter/BaseCssFilter.php      |   50 +-
 .../src/Assetic/Filter/BaseNodeFilter.php     |   43 +
 .../src/Assetic/Filter/BaseProcessFilter.php  |   51 +
 .../src/Assetic/Filter/CallablesFilter.php    |    6 +-
 .../src/Assetic/Filter/CoffeeScriptFilter.php |   27 +-
 .../src/Assetic/Filter/CompassFilter.php      |   40 +-
 .../src/Assetic/Filter/CssEmbedFilter.php     |    9 +-
 .../src/Assetic/Filter/CssImportFilter.php    |    2 +-
 .../src/Assetic/Filter/CssMinFilter.php       |    2 +-
 .../src/Assetic/Filter/CssRewriteFilter.php   |    4 +-
 .../assetic/src/Assetic/Filter/DartFilter.php |   67 +
 .../src/Assetic/Filter/FilterCollection.php   |    2 +-
 .../src/Assetic/Filter/FilterInterface.php    |    2 +-
 .../GoogleClosure/BaseCompilerFilter.php      |    8 +-
 .../GoogleClosure/CompilerApiFilter.php       |   36 +-
 .../GoogleClosure/CompilerJarFilter.php       |    8 +-
 .../assetic/src/Assetic/Filter/GssFilter.php  |    9 +-
 .../src/Assetic/Filter/HandlebarsFilter.php   |  102 ++
 .../src/Assetic/Filter/HashableInterface.php  |    2 +-
 .../src/Assetic/Filter/JSMinFilter.php        |    2 +-
 .../src/Assetic/Filter/JSMinPlusFilter.php    |    2 +-
 .../src/Assetic/Filter/JpegoptimFilter.php    |    7 +-
 .../src/Assetic/Filter/JpegtranFilter.php     |    9 +-
 .../assetic/src/Assetic/Filter/LessFilter.php |   39 +-
 .../src/Assetic/Filter/LessphpFilter.php      |   49 +-
 .../src/Assetic/Filter/OptiPngFilter.php      |    9 +-
 .../src/Assetic/Filter/PackagerFilter.php     |    2 +-
 .../src/Assetic/Filter/PackerFilter.php       |    2 +-
 .../src/Assetic/Filter/PhpCssEmbedFilter.php  |    4 +-
 .../src/Assetic/Filter/PngoutFilter.php       |    9 +-
 .../src/Assetic/Filter/Sass/SassFilter.php    |   11 +-
 .../src/Assetic/Filter/Sass/ScssFilter.php    |    2 +-
 .../src/Assetic/Filter/ScssphpFilter.php      |   32 +-
 .../src/Assetic/Filter/SprocketsFilter.php    |    9 +-
 .../src/Assetic/Filter/StylusFilter.php       |   17 +-
 .../src/Assetic/Filter/TypeScriptFilter.php   |   76 +
 .../src/Assetic/Filter/UglifyCssFilter.php    |  119 ++
 .../src/Assetic/Filter/UglifyJs2Filter.php    |  105 ++
 .../src/Assetic/Filter/UglifyJsFilter.php     |   51 +-
 .../Filter/Yui/BaseCompressorFilter.php       |   31 +-
 .../Filter/Yui/CssCompressorFilter.php        |    2 +-
 .../Assetic/Filter/Yui/JsCompressorFilter.php |    2 +-
 .../assetic/src/Assetic/FilterManager.php     |    2 +-
 .../assetic/src/Assetic/Util/PathUtils.php    |    9 +
 .../src/Assetic/Util/TraversableString.php    |    2 +-
 .../src/Assetic/ValueSupplierInterface.php    |    2 +-
 .../kriswallsmith/assetic/src/functions.php   |    6 +-
 .../Assetic/Test/Asset/AssetCacheTest.php     |  175 ---
 .../Test/Asset/AssetCollectionTest.php        |  333 ----
 .../Assetic/Test/Asset/AssetReferenceTest.php |  126 --
 .../Assetic/Test/Asset/FileAssetTest.php      |   72 -
 .../Assetic/Test/Asset/GlobAssetTest.php      |   61 -
 .../Assetic/Test/Asset/HttpAssetTest.php      |   58 -
 .../Assetic/Test/Asset/StringAssetTest.php    |   79 -
 .../tests/Assetic/Test/AssetManagerTest.php   |   53 -
 .../tests/Assetic/Test/AssetWriterTest.php    |  207 ---
 .../tests/Assetic/Test/Cache/ApcCacheTest.php |   42 -
 .../Assetic/Test/Cache/ConfigCacheTest.php    |   65 -
 .../Assetic/Test/Cache/ExpiringCacheTest.php  |  111 --
 .../Test/Cache/FilesystemCacheTest.php        |   51 -
 .../Extension/Twig/AsseticExtensionTest.php   |  212 ---
 .../Extension/Twig/TwigFormulaLoaderTest.php  |  108 --
 .../Test/Extension/Twig/TwigResourceTest.php  |   48 -
 .../Twig/templates/absolute_path.twig         |    3 -
 .../Extension/Twig/templates/combine.twig     |    3 -
 .../Test/Extension/Twig/templates/debug.twig  |    3 -
 .../Extension/Twig/templates/filters.twig     |    3 -
 .../Extension/Twig/templates/function.twig    |    3 -
 .../Test/Extension/Twig/templates/glob.twig   |    3 -
 .../Test/Extension/Twig/templates/image.twig  |    3 -
 .../Extension/Twig/templates/mixture.twig     |    3 -
 .../Twig/templates/optional_filter.twig       |    3 -
 .../Twig/templates/output_pattern.twig        |    3 -
 .../Extension/Twig/templates/output_url.twig  |    3 -
 .../Extension/Twig/templates/reference.twig   |    3 -
 .../Twig/templates/unclosed_tag.twig          |    5 -
 .../Extension/Twig/templates/variables.twig   |    5 -
 .../Assetic/Test/Factory/AssetFactoryTest.php |  203 ---
 .../Test/Factory/LazyAssetManagerTest.php     |   96 --
 .../Loader/CachedFormulaLoaderTest.php        |  138 --
 .../Loader/FunctionCallsFormulaLoaderTest.php |   69 -
 .../Test/Factory/Loader/templates/debug.php   |    8 -
 .../CoalescingDirectoryResourceTest.php       |   42 -
 .../Resource/DirectoryResourceTest.php        |  132 --
 .../Factory/Resource/FileResourceTest.php     |   42 -
 .../Factory/Resource/Fixtures/dir1/file1.txt  |    0
 .../Factory/Resource/Fixtures/dir1/file2.txt  |    0
 .../Factory/Resource/Fixtures/dir2/file1.txt  |    0
 .../Factory/Resource/Fixtures/dir2/file3.txt  |    0
 .../Factory/Worker/EnsureFilterWorkerTest.php |   47 -
 .../Test/Filter/BaseImageFilterTest.php       |   24 -
 .../Test/Filter/CallablesFilterTest.php       |   39 -
 .../Test/Filter/CoffeeScriptFilterTest.php    |   73 -
 .../Assetic/Test/Filter/CompassFilterTest.php |   66 -
 .../Test/Filter/CssEmbedFilterTest.php        |   54 -
 .../Test/Filter/CssImportFilterTest.php       |   67 -
 .../Assetic/Test/Filter/CssMinFilterTest.php  |   40 -
 .../Test/Filter/CssRewriteFilterTest.php      |  127 --
 .../Test/Filter/FilterCollectionTest.php      |   59 -
 .../GoogleClosure/CompilerApiFilterTest.php   |   86 --
 .../GoogleClosure/CompilerJarFilterTest.php   |   78 -
 .../Assetic/Test/Filter/GssFilterTest.php     |   45 -
 .../Assetic/Test/Filter/JSMinFilterTest.php   |   39 -
 .../Test/Filter/JSMinPlusFilterTest.php       |   39 -
 .../Test/Filter/JpegoptimFilterTest.php       |   45 -
 .../Test/Filter/JpegtranFilterTest.php        |   45 -
 .../Assetic/Test/Filter/LessFilterTest.php    |   63 -
 .../Assetic/Test/Filter/LessphpFilterTest.php |   47 -
 .../Assetic/Test/Filter/OptiPngFilterTest.php |   56 -
 .../Test/Filter/PackagerFilterTest.php        |   69 -
 .../Assetic/Test/Filter/PackerFilterTest.php  |   36 -
 .../Test/Filter/PhpCssEmbedFilterTest.php     |   34 -
 .../Assetic/Test/Filter/PngoutFilterTest.php  |   57 -
 .../Test/Filter/Sass/SassFilterTest.php       |   70 -
 .../Test/Filter/Sass/ScssFilterTest.php       |   44 -
 .../Assetic/Test/Filter/ScssphpFilterTest.php |   62 -
 .../Test/Filter/SprocketsFilterTest.php       |   69 -
 .../Assetic/Test/Filter/StylusFilterTest.php  |   53 -
 .../Test/Filter/UglifyJsFilterTest.php        |  100 --
 .../Filter/Yui/BaseCompressorFilterTest.php   |   31 -
 .../Filter/Yui/CssCompressorFilterTest.php    |   23 -
 .../Filter/Yui/JsCompressorFilterTest.php     |   62 -
 .../Test/Filter/fixtures/compass/compass.sass |    4 -
 .../fixtures/compass/partials/_sass.sass      |    4 -
 .../fixtures/compass/partials/_scss.scss      |    6 -
 .../Filter/fixtures/compass/stylesheet.sass   |    4 -
 .../Filter/fixtures/compass/stylesheet.scss   |    6 -
 .../Test/Filter/fixtures/cssembed/test.css    |    4 -
 .../Test/Filter/fixtures/cssimport/import.css |    2 -
 .../Test/Filter/fixtures/cssimport/main.css   |    4 -
 .../Test/Filter/fixtures/cssimport/more.sass  |    1 -
 .../fixtures/cssimport/more/evenmore/bg.gif   |    0
 .../cssimport/more/evenmore/deep1.css         |    2 -
 .../cssimport/more/evenmore/deep2.css         |    4 -
 .../fixtures/cssimport/noncssimport.css       |    2 -
 .../Test/Filter/fixtures/cssmin/fonts.css     |    3 -
 .../Test/Filter/fixtures/cssmin/main.css      |    5 -
 .../Assetic/Test/Filter/fixtures/home.gif     |    5 -
 .../Assetic/Test/Filter/fixtures/home.jpg     |    3 -
 .../Assetic/Test/Filter/fixtures/home.png     |    6 -
 .../Assetic/Test/Filter/fixtures/jsmin/js.js  |    7 -
 .../Test/Filter/fixtures/less/_include.less   |    1 -
 .../Test/Filter/fixtures/less/main.less       |    3 -
 .../fixtures/packager/app/application.js      |   11 -
 .../Filter/fixtures/packager/lib/package.yml  |    4 -
 .../Test/Filter/fixtures/packager/lib/util.js |   11 -
 .../Test/Filter/fixtures/packer/example.js    |    7 -
 .../Test/Filter/fixtures/sass/_include.scss   |    1 -
 .../Test/Filter/fixtures/sass/main.scss       |    3 -
 .../Test/Filter/fixtures/sprockets/include.js |    1 -
 .../sprockets/lib1/assets/images/image.gif    |    1 -
 .../Filter/fixtures/sprockets/lib1/header.js  |    3 -
 .../Filter/fixtures/sprockets/lib2/footer.js  |    1 -
 .../Test/Filter/fixtures/sprockets/main.js    |    5 -
 .../Test/Filter/fixtures/uglifyjs/script.js   |   18 -
 .../tests/Assetic/Test/FilterManagerTest.php  |   58 -
 .../tests/Assetic/Test/Fixture/messages.de.js |    1 -
 .../tests/Assetic/Test/Fixture/messages.en.js |    1 -
 .../tests/Assetic/Test/Fixture/messages.fr.js |    1 -
 .../Test/Util/TraversableStringTest.php       |   35 -
 .../kriswallsmith/assetic/tests/bootstrap.php |   46 -
 .../php-file-iterator/File/Iterator.php       |   10 +-
 .../File/Iterator/Autoload.php                |    6 +-
 .../File/Iterator/Autoload.php.in             |    4 +-
 .../File/Iterator/Facade.php                  |   10 +-
 .../File/Iterator/Factory.php                 |   10 +-
 core/vendor/phpunit/php-file-iterator/LICENSE |    2 +-
 .../phpunit/php-file-iterator/composer.json   |    2 +-
 .../php-file-iterator/package-composer.json   |   19 +
 core/vendor/phpunit/php-text-template/LICENSE |    2 +-
 .../php-text-template/Text/Template.php       |   10 +-
 .../Text/Template/Autoload.php                |    6 +-
 .../Text/Template/Autoload.php.in             |    6 +-
 core/vendor/phpunit/php-timer/LICENSE         |    2 +-
 core/vendor/phpunit/php-timer/PHP/Timer.php   |   16 +-
 .../phpunit/php-timer/PHP/Timer/Autoload.php  |    6 +-
 .../php-timer/PHP/Timer/Autoload.php.in       |    6 +-
 .../phpunit/php-timer/Tests/TimerTest.php     |   10 +-
 core/vendor/phpunit/php-timer/composer.json   |    2 +-
 .../phpunit/php-timer/package-composer.json   |   19 +
 core/vendor/phpunit/php-token-stream/LICENSE  |    2 +-
 .../phpunit/php-token-stream/PHP/Token.php    |   14 +-
 .../php-token-stream/PHP/Token/Stream.php     |   10 +-
 .../PHP/Token/Stream/Autoload.php             |    6 +-
 .../PHP/Token/Stream/Autoload.php.in          |    6 +-
 .../PHP/Token/Stream/CachingFactory.php       |   10 +-
 .../Tests/Token/ClassTest.php                 |    6 +-
 .../Tests/Token/ClosureTest.php               |  125 --
 .../Tests/Token/FunctionTest.php              |   10 +-
 .../Tests/Token/IncludeTest.php               |    6 +-
 .../Tests/Token/InterfaceTest.php             |   10 +-
 .../Tests/Token/NamespaceTest.php             |   10 +-
 .../php-token-stream/Tests/TokenTest.php      |   10 +-
 .../php-token-stream/Tests/_files/closure.php |    5 -
 .../phpunit/php-token-stream/composer.json    |    2 +-
 .../php-token-stream/package-composer.json    |   19 +
 .../Tests/MockObjectTest.php                  |   50 +-
 .../_files/MethodCallbackByReference.php      |    4 +-
 core/vendor/phpunit/phpunit/.travis.yml       |    9 +-
 core/vendor/phpunit/phpunit/ChangeLog.md      |   22 +
 .../phpunit/phpunit/PHPUnit/Autoload.php      |   40 +-
 .../phpunit/phpunit/PHPUnit/Autoload.php.in   |   40 +-
 .../Framework/Process/TestCaseMethod.tpl.dist |    9 +-
 .../phpunit/PHPUnit/Framework/TestCase.php    |    7 +
 .../phpunit/PHPUnit/Runner/Version.php        |    2 +-
 .../phpunit/PHPUnit/TextUI/TestRunner.php     |    5 +-
 .../phpunit/phpunit/PHPUnit/Util/XML.php      |    3 +-
 .../phpunit/Tests/Framework/AssertTest.php    |   23 +
 .../phpunit/Tests/Regression/GitHub/863.phpt  |   25 +
 .../_files/SelectorAssertionsFixture.html     |    2 +-
 .../phpunit/phpunit/build/assertions.php      |    0
 core/vendor/phpunit/phpunit/composer.json     |    2 +-
 .../phpunit/phpunit/composer/bin/phpunit      |    6 +-
 core/vendor/phpunit/phpunit/package.xml       |    7 +-
 core/vendor/phpunit/phpunit/phpunit.php       |    0
 .../Symfony/Cmf/Component/Routing/.travis.yml |    4 +-
 .../Cmf/Component/Routing/CHANGELOG.md        |    6 +
 .../Cmf/Component/Routing/ChainRouter.php     |   76 +-
 .../Routing/ChainedRouterInterface.php        |    2 +-
 .../Routing/ContentAwareGenerator.php         |   93 +-
 .../Routing/ContentRepositoryInterface.php    |   12 +-
 .../Cmf/Component/Routing/DynamicRouter.php   |   48 +-
 .../NestedMatcher/ConfigurableUrlMatcher.php  |   68 -
 .../Routing/NestedMatcher/UrlMatcher.php      |    2 +
 .../Routing/ProviderBasedGenerator.php        |   28 +-
 .../Component/Routing/RouteAwareInterface.php |    7 +-
 .../Routing/RouteObjectInterface.php          |    8 -
 .../Routing/RouteProviderInterface.php        |    8 +-
 .../Tests/Enhancer/FieldMapEnhancerTest.php   |    1 -
 .../Enhancer/FieldPresenceEnhancerTest.php    |    1 -
 .../Enhancer/RouteContentEnhancerTest.php     |    3 +-
 .../Routing/Tests/Enhancer/RouteObject.php    |    2 +-
 .../ConfigurableUrlMatcherTest.php            |  137 --
 .../Tests/NestedMatcher/NestedMatcherTest.php |    3 +-
 .../Routing/Tests/Routing/ChainRouterTest.php |   36 +-
 .../Routing/ContentAwareGeneratorTest.php     |   93 +-
 .../Tests/Routing/DynamicRouterTest.php       |   36 +-
 .../Routing/ProviderBasedGeneratorTest.php    |   24 +-
 .../Routing/Tests/Routing/RouteMock.php       |    4 +-
 .../Cmf/Component/Routing/Tests/bootstrap.php |    1 +
 .../Routing/VersatileGeneratorInterface.php   |   19 +-
 .../Cmf/Component/Routing/composer.json       |   10 +-
 .../ClassLoader/ClassCollectionLoader.php     |   12 +-
 .../ClassLoader/DebugClassLoader.php          |    2 +-
 .../Tests/ClassCollectionLoaderTest.php       |   18 +-
 .../Tests/DebugClassLoaderTest.php            |   51 +
 .../Fixtures/Namespaced/WithComments.php      |   12 +-
 .../ContainerAwareInterface.php               |    2 +-
 .../DependencyInjection/ContainerBuilder.php  |   13 +-
 .../DependencyInjection/Dumper/YamlDumper.php |    2 +-
 .../Loader/XmlFileLoader.php                  |    2 +-
 .../Loader/YamlFileLoader.php                 |    9 +-
 .../Tests/ContainerBuilderTest.php            |   21 +
 .../Tests/Fixtures/containers/container8.php  |    1 +
 .../Tests/Fixtures/php/services8.php          |    1 +
 .../Tests/Fixtures/xml/services8.xml          |    1 +
 .../Tests/Fixtures/yaml/services2.yml         |    1 +
 .../Tests/Fixtures/yaml/services8.yml         |    1 +
 .../Tests/Loader/XmlFileLoaderTest.php        |   50 +-
 .../Tests/Loader/YamlFileLoaderTest.php       |    4 +-
 .../Component/HttpFoundation/HeaderBag.php    |    2 +-
 .../Component/HttpFoundation/Request.php      |   13 +-
 .../Component/HttpFoundation/Response.php     |    2 +-
 .../Session/Attribute/AttributeBag.php        |    2 +-
 .../HttpFoundation/Tests/RequestTest.php      |    8 +
 .../DataCollector/ConfigDataCollector.php     |   26 +
 .../Debug/TraceableEventDispatcher.php        |    4 +
 .../HttpKernel/Fragment/FragmentHandler.php   |    6 +-
 .../Fragment/InlineFragmentRenderer.php       |    2 +-
 .../Component/HttpKernel/HttpCache/Store.php  |    2 +-
 .../Symfony/Component/HttpKernel/Kernel.php   |    6 +-
 .../Profiler/FileProfilerStorage.php          |    2 +-
 .../HttpKernel/Profiler/Profiler.php          |    2 +-
 .../Tests/Fragment/FragmentHandlerTest.php    |    6 +-
 .../HttpKernel/Tests/HttpCache/StoreTest.php  |    8 +-
 .../Tests/Profiler/Mock/RedisMock.php         |   13 +
 .../Symfony/Component/Process}/.gitignore     |    4 +-
 .../Symfony/Component/Process/CHANGELOG.md    |    7 +
 .../Process/Exception/ExceptionInterface.php  |    0
 .../Exception/InvalidArgumentException.php    |   21 +
 .../Process/Exception/LogicException.php      |   21 +
 .../Exception/ProcessFailedException.php      |    2 +-
 .../Process/Exception/RuntimeException.php    |    0
 .../Symfony/Component/Process/PhpProcess.php  |    4 +-
 .../Symfony/Component/Process/Process.php     |  192 ++-
 .../Component/Process/ProcessBuilder.php      |   25 +-
 .../Symfony/Component/Process/README.md       |    4 +-
 .../Process/Tests/AbstractProcessTest.php     |   71 +-
 .../Process/Tests/ProcessBuilderTest.php      |   12 +-
 .../Tests/ProcessFailedExceptionTest.php      |    3 +-
 .../Tests/SigchildDisabledProcessTest.php     |   18 +-
 .../Tests/SigchildEnabledProcessTest.php      |    8 +-
 .../Component/Process/Tests/bootstrap.php     |   18 -
 .../Symfony/Component/Process/composer.json   |    9 +-
 .../Component/Process/phpunit.xml.dist        |    2 +-
 .../Routing/Generator/UrlGenerator.php        |    4 +-
 .../Routing/Loader/XmlFileLoader.php          |    8 +-
 .../Loader/schema/routing/routing-1.0.xsd     |   18 +-
 .../Component/Routing/RouteCollection.php     |   24 +-
 .../Component/Routing/RouteCompiler.php       |    2 +-
 .../Routing/Tests/Fixtures/missing_id.xml     |    2 +-
 .../Tests/Fixtures/namespaceprefix.xml        |    2 +-
 .../Routing/Tests/Fixtures/nonvalid.xml       |    3 +-
 .../Routing/Tests/Fixtures/nonvalidroute.xml  |    2 +-
 .../Routing/Tests/Fixtures/validpattern.php   |   12 +-
 .../Routing/Tests/Fixtures/validpattern.xml   |    6 +-
 .../Routing/Tests/Fixtures/validpattern.yml   |    8 +-
 .../Routing/Tests/Fixtures/validresource.xml  |    2 +-
 .../Routing/Tests/Fixtures/validresource.yml  |    4 +-
 .../Tests/Generator/UrlGeneratorTest.php      |   11 +-
 .../Tests/Loader/PhpFileLoaderTest.php        |   12 +-
 .../Tests/Loader/XmlFileLoaderTest.php        |   41 +-
 .../Tests/Loader/YamlFileLoaderTest.php       |   30 +-
 .../Dumper/ApacheMatcherDumperTest.php        |    3 +-
 .../Matcher/Dumper/PhpMatcherDumperTest.php   |   31 +-
 .../Routing/Tests/Matcher/UrlMatcherTest.php  |   20 +-
 .../Routing/Tests/RouteCollectionTest.php     |  141 +-
 .../Serializer/Encoder/XmlEncoder.php         |    4 +-
 .../Tests/Encoder/JsonEncoderTest.php         |    1 -
 .../Translation/TranslatorInterface.php       |    4 +-
 .../Validator/Constraints/FileValidator.php   |   27 +-
 .../Component/Validator/DefaultTranslator.php |   12 +-
 .../Symfony/Component/Validator/README.md     |    2 +-
 .../Tests/Constraints/FileValidatorTest.php   |   17 +-
 .../Symfony/Component/Validator/Validator.php |    2 +-
 .../yaml/Symfony/Component/Yaml/Inline.php    |    5 -
 .../yaml/Symfony/Component/Yaml/Parser.php    |   85 +-
 .../Component/Yaml/Tests/DumperTest.php       |   72 +-
 .../Component/Yaml/Tests/ParserTest.php       |  116 +-
 core/vendor/twig/twig/CHANGELOG               |   16 +-
 core/vendor/twig/twig/doc/api.rst             |   96 +-
 core/vendor/twig/twig/doc/filters/batch.rst   |   45 +
 core/vendor/twig/twig/doc/filters/first.rst   |   25 +
 core/vendor/twig/twig/doc/filters/index.rst   |   39 +-
 .../twig/twig/doc/filters/json_encode.rst     |    4 +-
 core/vendor/twig/twig/doc/filters/last.rst    |   25 +
 core/vendor/twig/twig/doc/filters/merge.rst   |    2 +-
 core/vendor/twig/twig/doc/filters/sort.rst    |    2 +-
 .../twig/twig/doc/filters/striptags.rst       |    2 +-
 .../twig/twig/doc/filters/url_encode.rst      |   15 +-
 core/vendor/twig/twig/doc/functions/index.rst |   14 +-
 .../doc/functions/template_from_string.rst    |    6 +-
 core/vendor/twig/twig/doc/intro.rst           |   51 +-
 core/vendor/twig/twig/doc/recipes.rst         |    7 +-
 core/vendor/twig/twig/doc/tags/for.rst        |   15 +
 core/vendor/twig/twig/doc/tags/index.rst      |   24 +-
 core/vendor/twig/twig/doc/templates.rst       |    9 +-
 core/vendor/twig/twig/doc/tests/index.rst     |   10 +-
 core/vendor/twig/twig/ext/twig/php_twig.h     |    2 +-
 core/vendor/twig/twig/ext/twig/twig.c         |    3 +
 core/vendor/twig/twig/lib/Twig/Autoloader.php |    3 +-
 core/vendor/twig/twig/lib/Twig/Compiler.php   |    3 +-
 .../twig/twig/lib/Twig/CompilerInterface.php  |    3 +-
 .../vendor/twig/twig/lib/Twig/Environment.php |   62 +-
 core/vendor/twig/twig/lib/Twig/Error.php      |    3 +-
 .../twig/twig/lib/Twig/Error/Loader.php       |    3 +-
 .../twig/twig/lib/Twig/Error/Runtime.php      |    3 +-
 .../twig/twig/lib/Twig/Error/Syntax.php       |    3 +-
 .../twig/lib/Twig/ExistsLoaderInterface.php   |    3 +-
 .../twig/twig/lib/Twig/ExpressionParser.php   |    3 +-
 .../twig/twig/lib/Twig/Extension/Core.php     |   94 +-
 .../twig/twig/lib/Twig/Extension/Staging.php  |    3 +-
 .../twig/twig/lib/Twig/ExtensionInterface.php |    3 +-
 core/vendor/twig/twig/lib/Twig/Filter.php     |    3 +-
 .../twig/twig/lib/Twig/Filter/Function.php    |    3 +-
 .../twig/twig/lib/Twig/Filter/Method.php      |    3 +-
 .../vendor/twig/twig/lib/Twig/Filter/Node.php |    3 +-
 .../twig/lib/Twig/FilterCallableInterface.php |    3 +-
 .../twig/twig/lib/Twig/FilterInterface.php    |    3 +-
 core/vendor/twig/twig/lib/Twig/Function.php   |    3 +-
 .../twig/twig/lib/Twig/Function/Function.php  |    3 +-
 .../twig/twig/lib/Twig/Function/Method.php    |    3 +-
 .../twig/twig/lib/Twig/Function/Node.php      |    3 +-
 .../lib/Twig/FunctionCallableInterface.php    |    3 +-
 .../twig/twig/lib/Twig/FunctionInterface.php  |    3 +-
 core/vendor/twig/twig/lib/Twig/Lexer.php      |    8 +-
 .../twig/twig/lib/Twig/LexerInterface.php     |    3 +-
 .../twig/twig/lib/Twig/Loader/Array.php       |    3 +-
 .../twig/twig/lib/Twig/Loader/Chain.php       |    3 +-
 .../twig/twig/lib/Twig/Loader/Filesystem.php  |    4 +-
 .../twig/twig/lib/Twig/Loader/String.php      |    3 +-
 .../twig/twig/lib/Twig/LoaderInterface.php    |    3 +-
 core/vendor/twig/twig/lib/Twig/Markup.php     |    3 +-
 core/vendor/twig/twig/lib/Twig/Node.php       |    3 +-
 .../twig/twig/lib/Twig/Node/AutoEscape.php    |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Block.php |    3 +-
 .../twig/lib/Twig/Node/BlockReference.php     |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Body.php  |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Do.php    |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Embed.php |    3 +-
 .../twig/twig/lib/Twig/Node/Expression.php    |    3 +-
 .../Twig/Node/Expression/BlockReference.php   |    3 +-
 .../Node/Expression/ExtensionReference.php    |    3 +-
 .../Twig/Node/Expression/Filter/Default.php   |    3 +-
 .../twig/lib/Twig/Node/Expression/Parent.php  |    3 +-
 .../Twig/Node/Expression/Test/Constant.php    |    3 +-
 .../lib/Twig/Node/Expression/Test/Defined.php |    3 +-
 .../Twig/Node/Expression/Test/Divisibleby.php |    3 +-
 .../lib/Twig/Node/Expression/Test/Even.php    |    3 +-
 .../lib/Twig/Node/Expression/Test/Null.php    |    3 +-
 .../lib/Twig/Node/Expression/Test/Odd.php     |    3 +-
 .../lib/Twig/Node/Expression/Test/Sameas.php  |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Flush.php |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/For.php   |    3 +-
 .../twig/twig/lib/Twig/Node/ForLoop.php       |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/If.php    |    3 +-
 .../vendor/twig/twig/lib/Twig/Node/Import.php |    3 +-
 .../twig/twig/lib/Twig/Node/Include.php       |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Macro.php |    3 +-
 .../vendor/twig/twig/lib/Twig/Node/Module.php |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Print.php |    3 +-
 .../twig/twig/lib/Twig/Node/Sandbox.php       |    3 +-
 .../twig/lib/Twig/Node/SandboxedModule.php    |    3 +-
 .../twig/lib/Twig/Node/SandboxedPrint.php     |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Set.php   |    3 +-
 .../twig/twig/lib/Twig/Node/Spaceless.php     |    3 +-
 core/vendor/twig/twig/lib/Twig/Node/Text.php  |    3 +-
 .../twig/twig/lib/Twig/NodeInterface.php      |    3 +-
 .../twig/lib/Twig/NodeOutputInterface.php     |    3 +-
 .../twig/twig/lib/Twig/NodeTraverser.php      |    3 +-
 .../twig/lib/Twig/NodeVisitor/Escaper.php     |    3 +-
 .../twig/lib/Twig/NodeVisitor/Optimizer.php   |    3 +-
 .../twig/lib/Twig/NodeVisitor/Sandbox.php     |    3 +-
 .../twig/lib/Twig/NodeVisitorInterface.php    |    5 +-
 core/vendor/twig/twig/lib/Twig/Parser.php     |    3 +-
 .../twig/twig/lib/Twig/ParserInterface.php    |    3 +-
 .../twig/lib/Twig/Sandbox/SecurityError.php   |    3 +-
 .../twig/lib/Twig/Sandbox/SecurityPolicy.php  |    3 +-
 .../Twig/Sandbox/SecurityPolicyInterface.php  |    3 +-
 .../twig/twig/lib/Twig/SimpleFilter.php       |    3 +-
 .../twig/twig/lib/Twig/SimpleFunction.php     |    3 +-
 core/vendor/twig/twig/lib/Twig/SimpleTest.php |    3 +-
 core/vendor/twig/twig/lib/Twig/Template.php   |    3 +-
 .../twig/twig/lib/Twig/TemplateInterface.php  |    3 +-
 core/vendor/twig/twig/lib/Twig/Test.php       |    3 +-
 .../twig/twig/lib/Twig/Test/Function.php      |    3 +-
 .../lib/Twig/Test/IntegrationTestCase.php     |    5 +-
 .../vendor/twig/twig/lib/Twig/Test/Method.php |    3 +-
 core/vendor/twig/twig/lib/Twig/Test/Node.php  |    3 +-
 .../twig/lib/Twig/TestCallableInterface.php   |    3 +-
 .../twig/twig/lib/Twig/TestInterface.php      |    3 +-
 core/vendor/twig/twig/lib/Twig/Token.php      |    3 +-
 .../vendor/twig/twig/lib/Twig/TokenParser.php |    3 +-
 .../twig/twig/lib/Twig/TokenParser/Do.php     |    2 +-
 .../twig/twig/lib/Twig/TokenParser/Set.php    |    2 +-
 .../twig/twig/lib/Twig/TokenParserBroker.php  |    3 +-
 .../lib/Twig/TokenParserBrokerInterface.php   |    3 +-
 .../twig/lib/Twig/TokenParserInterface.php    |    3 +-
 .../vendor/twig/twig/lib/Twig/TokenStream.php |    3 +-
 .../twig/test/Twig/Tests/EnvironmentTest.php  |   16 +
 .../Twig/Tests/Fixtures/filters/batch.test    |   31 +
 .../Tests/Fixtures/filters/batch_float.php    |   31 +
 .../filters/batch_with_empty_fill.test        |   37 +
 .../Fixtures/filters/batch_with_fill.test     |   37 +
 .../Twig/Tests/Fixtures/filters/date.test     |   45 +-
 .../Twig/Tests/Fixtures/filters/first.test    |   14 +
 .../Twig/Tests/Fixtures/filters/last.test     |   14 +
 .../Tests/Fixtures/filters/urlencode.test     |   12 +
 .../Twig/Tests/Fixtures/functions/date.test   |    6 +-
 .../Fixtures/tags/autoescape/literal.test     |    4 +-
 ...ntegrationTest.php => IntegrationTest.php} |    0
 .../twig/twig/test/Twig/Tests/LexerTest.php   |   54 +-
 .../test/Twig/Tests/Loader/FilesystemTest.php |    1 +
 .../twig/twig/test/Twig/Tests/ParserTest.php  |    2 +-
 .../twig/test/Twig/Tests/TemplateTest.php     |    2 +-
 .../twig/test/Twig/Tests/escapingTest.php     |    6 +-
 545 files changed, 5238 insertions(+), 8466 deletions(-)
 create mode 100644 core/.gitignore
 delete mode 100644 core/vendor/.gitignore
 delete mode 100644 core/vendor/kriswallsmith/assetic/.travis.yml
 mode change 100644 => 100755 core/vendor/kriswallsmith/assetic/CHANGELOG-1.1.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/en/build.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/en/concepts.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/en/define.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/en/index.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/en/introduction.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/ja/build.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/ja/concepts.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/ja/define.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/ja/index.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/docs/ja/introduction.md
 delete mode 100644 core/vendor/kriswallsmith/assetic/phpunit.travis.xml
 delete mode 100644 core/vendor/kriswallsmith/assetic/phpunit.xml.dist
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ArrayCache.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/ValueContainer.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/CacheBustingWorker.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseNodeFilter.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseProcessFilter.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Filter/DartFilter.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Filter/HandlebarsFilter.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Filter/TypeScriptFilter.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyCssFilter.php
 create mode 100644 core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyJs2Filter.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetCacheTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetCollectionTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetReferenceTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/FileAssetTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/GlobAssetTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/HttpAssetTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/StringAssetTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/AssetManagerTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/AssetWriterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ApcCacheTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ConfigCacheTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ExpiringCacheTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/FilesystemCacheTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/AsseticExtensionTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/TwigFormulaLoaderTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/TwigResourceTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/absolute_path.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/combine.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/debug.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/filters.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/function.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/glob.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/image.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/mixture.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/optional_filter.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/output_pattern.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/output_url.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/reference.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/unclosed_tag.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/variables.twig
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/AssetFactoryTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/LazyAssetManagerTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/CachedFormulaLoaderTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/FunctionCallsFormulaLoaderTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/templates/debug.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/CoalescingDirectoryResourceTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/DirectoryResourceTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/FileResourceTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir1/file1.txt
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir1/file2.txt
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir2/file1.txt
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir2/file3.txt
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Worker/EnsureFilterWorkerTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/BaseImageFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CallablesFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CoffeeScriptFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CompassFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssEmbedFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssImportFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssMinFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssRewriteFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/FilterCollectionTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GoogleClosure/CompilerApiFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GoogleClosure/CompilerJarFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GssFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JSMinFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JSMinPlusFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JpegoptimFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JpegtranFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/LessFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/LessphpFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/OptiPngFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PackagerFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PackerFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PhpCssEmbedFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PngoutFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Sass/SassFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Sass/ScssFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/ScssphpFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/SprocketsFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/StylusFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/UglifyJsFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/BaseCompressorFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/CssCompressorFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/JsCompressorFilterTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/compass.sass
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/partials/_sass.sass
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/partials/_scss.scss
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/stylesheet.sass
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/stylesheet.scss
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssembed/test.css
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/import.css
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/main.css
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more.sass
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/bg.gif
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/deep1.css
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/deep2.css
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/noncssimport.css
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssmin/fonts.css
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssmin/main.css
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.gif
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.jpg
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.png
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/jsmin/js.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/less/_include.less
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/less/main.less
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/app/application.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/lib/package.yml
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/lib/util.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packer/example.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sass/_include.scss
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sass/main.scss
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/include.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib1/assets/images/image.gif
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib1/header.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib2/footer.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/main.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/uglifyjs/script.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/FilterManagerTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.de.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.en.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.fr.js
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Util/TraversableStringTest.php
 delete mode 100644 core/vendor/kriswallsmith/assetic/tests/bootstrap.php
 create mode 100644 core/vendor/phpunit/php-file-iterator/package-composer.json
 create mode 100644 core/vendor/phpunit/php-timer/package-composer.json
 delete mode 100644 core/vendor/phpunit/php-token-stream/Tests/Token/ClosureTest.php
 delete mode 100644 core/vendor/phpunit/php-token-stream/Tests/_files/closure.php
 create mode 100644 core/vendor/phpunit/php-token-stream/package-composer.json
 create mode 100644 core/vendor/phpunit/phpunit/Tests/Regression/GitHub/863.phpt
 mode change 100644 => 100755 core/vendor/phpunit/phpunit/build/assertions.php
 mode change 100644 => 100755 core/vendor/phpunit/phpunit/phpunit.php
 create mode 100644 core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/CHANGELOG.md
 delete mode 100644 core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/NestedMatcher/ConfigurableUrlMatcher.php
 delete mode 100644 core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/NestedMatcher/ConfigurableUrlMatcherTest.php
 create mode 100644 core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/DebugClassLoaderTest.php
 rename core/vendor/{kriswallsmith/assetic => symfony/process/Symfony/Component/Process}/.gitignore (70%)
 mode change 100755 => 100644 core/vendor/symfony/process/Symfony/Component/Process/Exception/ExceptionInterface.php
 create mode 100644 core/vendor/symfony/process/Symfony/Component/Process/Exception/InvalidArgumentException.php
 create mode 100644 core/vendor/symfony/process/Symfony/Component/Process/Exception/LogicException.php
 mode change 100755 => 100644 core/vendor/symfony/process/Symfony/Component/Process/Exception/ProcessFailedException.php
 mode change 100755 => 100644 core/vendor/symfony/process/Symfony/Component/Process/Exception/RuntimeException.php
 delete mode 100644 core/vendor/symfony/process/Symfony/Component/Process/Tests/bootstrap.php
 create mode 100644 core/vendor/twig/twig/doc/filters/batch.rst
 create mode 100644 core/vendor/twig/twig/doc/filters/first.rst
 create mode 100644 core/vendor/twig/twig/doc/filters/last.rst
 create mode 100644 core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch.test
 create mode 100644 core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_float.php
 create mode 100644 core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_empty_fill.test
 create mode 100644 core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_fill.test
 create mode 100644 core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test
 create mode 100644 core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/last.test
 create mode 100644 core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode.test
 rename core/vendor/twig/twig/test/Twig/Tests/{integrationTest.php => IntegrationTest.php} (100%)

diff --git a/composer.json b/composer.json
index 9db48262376a..9b317c4580e0 100644
--- a/composer.json
+++ b/composer.json
@@ -4,22 +4,22 @@
   "type": "drupal-core",
   "license": "GPL-2.0+",
   "require": {
-    "symfony/class-loader": "2.2.0",
-    "symfony/dependency-injection": "2.2.0",
-    "symfony/event-dispatcher": "2.2.0",
-    "symfony/http-foundation": "2.2.0",
-    "symfony/http-kernel": "2.2.0",
-    "symfony/routing": "2.2.0",
-    "symfony/serializer": "2.2.0",
-    "symfony/validator": "2.2.0",
-    "symfony/yaml": "2.2.0",
-    "twig/twig": "1.12.1",
-    "doctrine/common": "2.3.0",
-    "guzzle/http": "3.1.0",
-    "kriswallsmith/assetic": "1.1.0-alpha1",
-    "symfony-cmf/routing": "dev-master#ea4a10",
-    "easyrdf/easyrdf": "0.8.0-beta.1",
-    "phpunit/phpunit": "3.7.15"
+    "symfony/class-loader": "2.2.*",
+    "symfony/dependency-injection": "2.2.*",
+    "symfony/event-dispatcher": "2.2.*",
+    "symfony/http-foundation": "2.2.*",
+    "symfony/http-kernel": "2.2.*",
+    "symfony/routing": "2.2.*",
+    "symfony/serializer": "2.2.*",
+    "symfony/validator": "2.2.*",
+    "symfony/yaml": "2.2.*",
+    "twig/twig": "1.12.*",
+    "doctrine/common": "2.3.*",
+    "guzzle/http": "3.1.*",
+    "kriswallsmith/assetic": "1.1.*@alpha",
+    "symfony-cmf/routing": "1.1.*@alpha",
+    "easyrdf/easyrdf": "0.8.*@beta",
+    "phpunit/phpunit": "3.7.*"
   },
   "autoload": {
     "psr-0": {
@@ -28,8 +28,8 @@
       "Drupal\\Driver": "drivers/lib/"
     }
   },
-  "minimum-stability": "dev",
   "config": {
-    "vendor-dir": "core/vendor"
+    "vendor-dir": "core/vendor",
+    "preferred-install": "dist"
   }
 }
diff --git a/composer.lock b/composer.lock
index 4d0f5490b2a4..e8a696a72889 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,5 +1,9 @@
 {
-    "hash": "6b1bf50f976af5d14628f38478885c0f",
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
+    ],
+    "hash": "8969a2b9cb8e5b12a6649cadfa010bab",
     "packages": [
         {
             "name": "doctrine/common",
@@ -53,7 +57,7 @@
                     "email": "kontakt@beberlei.de"
                 },
                 {
-                    "name": "Johannes Schmitt",
+                    "name": "Johannes M. Schmitt",
                     "email": "schmittjoh@gmail.com",
                     "homepage": "https://github.com/schmittjoh",
                     "role": "Developer of wrapped JMSSerializerBundle"
@@ -126,17 +130,17 @@
         },
         {
             "name": "guzzle/common",
-            "version": "v3.1.0",
+            "version": "v3.1.2",
             "target-dir": "Guzzle/Common",
             "source": {
                 "type": "git",
                 "url": "git://github.com/guzzle/common.git",
-                "reference": "v3.1.0"
+                "reference": "v3.1.2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/guzzle/common/archive/v3.1.0.zip",
-                "reference": "v3.1.0",
+                "url": "https://github.com/guzzle/common/archive/v3.1.2.zip",
+                "reference": "v3.1.2",
                 "shasum": ""
             },
             "require": {
@@ -166,30 +170,32 @@
                 "event",
                 "exception"
             ],
-            "time": "2013-01-13 05:14:34"
+            "time": "2013-01-28 00:07:40"
         },
         {
             "name": "guzzle/http",
-            "version": "v3.1.0",
+            "version": "v3.1.2",
             "target-dir": "Guzzle/Http",
             "source": {
                 "type": "git",
                 "url": "git://github.com/guzzle/http.git",
-                "reference": "v3.1.0"
+                "reference": "v3.1.2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/guzzle/http/archive/v3.1.0.zip",
-                "reference": "v3.1.0",
+                "url": "https://github.com/guzzle/http/archive/v3.1.2.zip",
+                "reference": "v3.1.2",
                 "shasum": ""
             },
             "require": {
-                "ext-curl": "*",
                 "guzzle/common": "self.version",
                 "guzzle/parser": "self.version",
                 "guzzle/stream": "self.version",
                 "php": ">=5.3.2"
             },
+            "suggest": {
+                "ext-curl": "*"
+            },
             "type": "library",
             "extra": {
                 "branch-alias": {
@@ -221,21 +227,21 @@
                 "http",
                 "http client"
             ],
-            "time": "2013-01-13 05:09:32"
+            "time": "2013-01-26 08:20:43"
         },
         {
             "name": "guzzle/parser",
-            "version": "v3.1.0",
+            "version": "v3.1.2",
             "target-dir": "Guzzle/Parser",
             "source": {
                 "type": "git",
                 "url": "git://github.com/guzzle/parser.git",
-                "reference": "v3.1.0"
+                "reference": "v3.1.2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/guzzle/parser/archive/v3.1.0.zip",
-                "reference": "v3.1.0",
+                "url": "https://github.com/guzzle/parser/archive/v3.1.2.zip",
+                "reference": "v3.1.2",
                 "shasum": ""
             },
             "require": {
@@ -269,17 +275,17 @@
         },
         {
             "name": "guzzle/stream",
-            "version": "v3.1.0",
+            "version": "v3.1.2",
             "target-dir": "Guzzle/Stream",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/stream",
-                "reference": "v3.1.0"
+                "reference": "v3.0.7"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/guzzle/stream/archive/v3.1.0.zip",
-                "reference": "v3.1.0",
+                "url": "https://github.com/guzzle/stream/archive/v3.0.7.zip",
+                "reference": "v3.0.7",
                 "shasum": ""
             },
             "require": {
@@ -319,31 +325,38 @@
         },
         {
             "name": "kriswallsmith/assetic",
-            "version": "v1.1.0-alpha1",
+            "version": "v1.1.0-alpha4",
             "source": {
                 "type": "git",
-                "url": "http://github.com/kriswallsmith/assetic.git",
-                "reference": "v1.1.0-alpha1"
+                "url": "https://github.com/kriswallsmith/assetic.git",
+                "reference": "v1.1.0-alpha4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/kriswallsmith/assetic/zipball/v1.1.0-alpha1",
-                "reference": "v1.1.0-alpha1",
+                "url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/v1.1.0-alpha4",
+                "reference": "v1.1.0-alpha4",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.1",
-                "symfony/process": "2.1.*"
+                "symfony/process": ">=2.1.0,<2.3-dev"
             },
             "require-dev": {
+                "cssmin/cssmin": "*",
+                "joliclic/javascript-packer": "*",
+                "kamicane/packager": "*",
                 "leafo/lessphp": "*",
                 "leafo/scssphp": "*",
+                "leafo/scssphp-compass": "*",
+                "mrclay/minify": "*",
+                "phpunit/phpunit": "3.7.*",
                 "ptachoire/cssembed": "*",
                 "twig/twig": ">=1.6.0,<2.0"
             },
             "suggest": {
                 "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
                 "leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
+                "leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin",
                 "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
                 "twig/twig": "Assetic provides the integration with the Twig templating engine"
             },
@@ -356,7 +369,10 @@
             "autoload": {
                 "psr-0": {
                     "Assetic": "src/"
-                }
+                },
+                "files": [
+                    "src/functions.php"
+                ]
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
@@ -376,11 +392,11 @@
                 "compression",
                 "minification"
             ],
-            "time": "2012-08-28 05:33:44"
+            "time": "2013-02-24 17:22:20"
         },
         {
             "name": "phpunit/php-code-coverage",
-            "version": "1.2.x-dev",
+            "version": "1.2.9",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
@@ -433,16 +449,16 @@
         },
         {
             "name": "phpunit/php-file-iterator",
-            "version": "dev-master",
+            "version": "1.3.3",
             "source": {
                 "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "2deb24c65ea78e126daa8d45b2089ddc29ec1d26"
+                "url": "git://github.com/sebastianbergmann/php-file-iterator.git",
+                "reference": "1.3.3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2deb24c65ea78e126daa8d45b2089ddc29ec1d26",
-                "reference": "2deb24c65ea78e126daa8d45b2089ddc29ec1d26",
+                "url": "https://github.com/sebastianbergmann/php-file-iterator/zipball/1.3.3",
+                "reference": "1.3.3",
                 "shasum": ""
             },
             "require": {
@@ -469,25 +485,25 @@
                 }
             ],
             "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+            "homepage": "http://www.phpunit.de/",
             "keywords": [
                 "filesystem",
                 "iterator"
             ],
-            "time": "2013-01-07 10:47:05"
+            "time": "2012-10-11 04:44:38"
         },
         {
             "name": "phpunit/php-text-template",
-            "version": "dev-master",
+            "version": "1.1.4",
             "source": {
                 "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "1eeef106193d2f8c539728e566bb4793071a9e18"
+                "url": "git://github.com/sebastianbergmann/php-text-template.git",
+                "reference": "1.1.4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/1eeef106193d2f8c539728e566bb4793071a9e18",
-                "reference": "1eeef106193d2f8c539728e566bb4793071a9e18",
+                "url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4",
+                "reference": "1.1.4",
                 "shasum": ""
             },
             "require": {
@@ -518,20 +534,20 @@
             "keywords": [
                 "template"
             ],
-            "time": "2013-01-07 10:56:17"
+            "time": "2012-10-31 11:15:28"
         },
         {
             "name": "phpunit/php-timer",
-            "version": "1.0.x-dev",
+            "version": "1.0.4",
             "source": {
                 "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "ecf7920b27003a9412b07dad79dbb5ad1249e6c3"
+                "url": "git://github.com/sebastianbergmann/php-timer.git",
+                "reference": "1.0.4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/ecf7920b27003a9412b07dad79dbb5ad1249e6c3",
-                "reference": "ecf7920b27003a9412b07dad79dbb5ad1249e6c3",
+                "url": "https://github.com/sebastianbergmann/php-timer/zipball/1.0.4",
+                "reference": "1.0.4",
                 "shasum": ""
             },
             "require": {
@@ -558,24 +574,24 @@
                 }
             ],
             "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
+            "homepage": "http://www.phpunit.de/",
             "keywords": [
                 "timer"
             ],
-            "time": "2013-01-30 06:08:51"
+            "time": "2012-10-11 04:45:58"
         },
         {
             "name": "phpunit/php-token-stream",
-            "version": "dev-master",
+            "version": "1.1.5",
             "source": {
                 "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-                "reference": "c25dd88e1592e66dee2553c99ef244203d5a1b98"
+                "url": "git://github.com/sebastianbergmann/php-token-stream.git",
+                "reference": "1.1.5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c25dd88e1592e66dee2553c99ef244203d5a1b98",
-                "reference": "c25dd88e1592e66dee2553c99ef244203d5a1b98",
+                "url": "https://github.com/sebastianbergmann/php-token-stream/zipball/1.1.5",
+                "reference": "1.1.5",
                 "shasum": ""
             },
             "require": {
@@ -603,24 +619,24 @@
                 }
             ],
             "description": "Wrapper around PHP's tokenizer extension.",
-            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+            "homepage": "http://www.phpunit.de/",
             "keywords": [
                 "tokenizer"
             ],
-            "time": "2013-01-07 10:56:35"
+            "time": "2012-10-11 04:47:14"
         },
         {
             "name": "phpunit/phpunit",
-            "version": "3.7.15",
+            "version": "3.7.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "3.7.15"
+                "reference": "3.7.19"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.15",
-                "reference": "3.7.15",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.19",
+                "reference": "3.7.19",
                 "shasum": ""
             },
             "require": {
@@ -634,7 +650,7 @@
                 "phpunit/php-text-template": ">=1.1.1",
                 "phpunit/php-timer": ">=1.0.2,<1.1.0",
                 "phpunit/phpunit-mock-objects": ">=1.2.0,<1.3.0",
-                "symfony/yaml": ">=2.2.0"
+                "symfony/yaml": ">=2.0.0,<2.3.0"
             },
             "require-dev": {
                 "pear-pear/pear": "1.9.4"
@@ -681,20 +697,20 @@
                 "testing",
                 "xunit"
             ],
-            "time": "2013-03-01 11:55:06"
+            "time": "2013-03-25 11:45:06"
         },
         {
             "name": "phpunit/phpunit-mock-objects",
-            "version": "1.2.x-dev",
+            "version": "1.2.3",
             "source": {
                 "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-                "reference": "d49b5683200b5db9b1c64cb06f52f50d147891c4"
+                "url": "git://github.com/sebastianbergmann/phpunit-mock-objects.git",
+                "reference": "1.2.3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/d49b5683200b5db9b1c64cb06f52f50d147891c4",
-                "reference": "d49b5683200b5db9b1c64cb06f52f50d147891c4",
+                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects/archive/1.2.3.zip",
+                "reference": "1.2.3",
                 "shasum": ""
             },
             "require": {
@@ -730,7 +746,7 @@
                 "mock",
                 "xunit"
             ],
-            "time": "2013-02-05 07:46:41"
+            "time": "2013-01-13 10:24:48"
         },
         {
             "name": "psr/log",
@@ -772,28 +788,32 @@
         },
         {
             "name": "symfony-cmf/routing",
-            "version": "dev-master",
+            "version": "1.1.0-alpha1",
             "target-dir": "Symfony/Cmf/Component/Routing",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony-cmf/Routing.git",
-                "reference": "ea4a10"
+                "reference": "1.1.0-alpha1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/43585d83fb07f9354c098fcae593010567f53d45",
-                "reference": "ea4a10",
+                "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/1.1.0-alpha1",
+                "reference": "1.1.0-alpha1",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.2",
-                "symfony/http-kernel": ">=2.1,<2.3-dev",
-                "symfony/routing": ">=2.1,<2.3-dev"
+                "psr/log": ">=1.0,<2.0",
+                "symfony/http-kernel": ">=2.2,<2.3-dev",
+                "symfony/routing": ">=2.2,<2.3-dev"
+            },
+            "suggest": {
+                "symfony/http-foundation": "ChainRouter/DynamicRouter have optional support for Request instances, several enhancers require a Request instances, >=2.2,<2.3-dev"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.0-dev"
+                    "dev-master": "1.1-dev"
                 }
             },
             "autoload": {
@@ -817,21 +837,21 @@
                 "database",
                 "routing"
             ],
-            "time": "2013-01-21 20:33:16"
+            "time": "2013-05-07 06:30:59"
         },
         {
             "name": "symfony/class-loader",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/ClassLoader",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/ClassLoader.git",
-                "reference": "v2.2.0"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/v2.2.0",
-                "reference": "v2.2.0",
+                "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -867,21 +887,21 @@
             ],
             "description": "Symfony ClassLoader Component",
             "homepage": "http://symfony.com",
-            "time": "2013-03-01 06:43:14"
+            "time": "2013-03-19 08:32:26"
         },
         {
             "name": "symfony/dependency-injection",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/DependencyInjection",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/DependencyInjection.git",
-                "reference": "v2.2.0-RC3"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/v2.2.0-RC3",
-                "reference": "v2.2.0-RC3",
+                "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -922,21 +942,21 @@
             ],
             "description": "Symfony DependencyInjection Component",
             "homepage": "http://symfony.com",
-            "time": "2013-02-11 11:43:49"
+            "time": "2013-03-23 07:49:54"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/EventDispatcher",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/EventDispatcher.git",
-                "reference": "v2.2.0-RC3"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.2.0-RC3",
-                "reference": "v2.2.0-RC3",
+                "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -980,17 +1000,17 @@
         },
         {
             "name": "symfony/http-foundation",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/HttpFoundation",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/HttpFoundation.git",
-                "reference": "v2.2.0"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/v2.2.0",
-                "reference": "v2.2.0",
+                "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -1026,21 +1046,21 @@
             ],
             "description": "Symfony HttpFoundation Component",
             "homepage": "http://symfony.com",
-            "time": "2013-02-26 09:42:13"
+            "time": "2013-04-06 10:15:43"
         },
         {
             "name": "symfony/http-kernel",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/HttpKernel",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/HttpKernel.git",
-                "reference": "v2.2.0"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/v2.2.0",
-                "reference": "v2.2.0",
+                "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -1095,30 +1115,35 @@
             ],
             "description": "Symfony HttpKernel Component",
             "homepage": "http://symfony.com",
-            "time": "2013-03-01 06:52:29"
+            "time": "2013-04-06 10:16:33"
         },
         {
             "name": "symfony/process",
-            "version": "2.1.x-dev",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/Process",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Process.git",
-                "reference": "v2.1.8"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Process/zipball/v2.1.8",
-                "reference": "v2.1.8",
+                "url": "https://api.github.com/repos/symfony/Process/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.2-dev"
+                }
+            },
             "autoload": {
                 "psr-0": {
-                    "Symfony\\Component\\Process": ""
+                    "Symfony\\Component\\Process\\": ""
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
@@ -1137,21 +1162,21 @@
             ],
             "description": "Symfony Process Component",
             "homepage": "http://symfony.com",
-            "time": "2013-02-18 21:27:57"
+            "time": "2013-03-23 07:49:54"
         },
         {
             "name": "symfony/routing",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/Routing",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Routing.git",
-                "reference": "v2.2.0-RC3"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Routing/zipball/v2.2.0-RC3",
-                "reference": "v2.2.0-RC3",
+                "url": "https://api.github.com/repos/symfony/Routing/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -1195,21 +1220,21 @@
             ],
             "description": "Symfony Routing Component",
             "homepage": "http://symfony.com",
-            "time": "2013-02-11 11:24:47"
+            "time": "2013-03-23 12:03:22"
         },
         {
             "name": "symfony/serializer",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/Serializer",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Serializer.git",
-                "reference": "v2.2.0-RC3"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Serializer/zipball/v2.2.0-RC3",
-                "reference": "v2.2.0-RC3",
+                "url": "https://api.github.com/repos/symfony/Serializer/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -1242,28 +1267,28 @@
             ],
             "description": "Symfony Serializer Component",
             "homepage": "http://symfony.com",
-            "time": "2013-01-19 07:50:02"
+            "time": "2013-03-06 21:43:23"
         },
         {
             "name": "symfony/translation",
-            "version": "dev-master",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/Translation",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Translation.git",
-                "reference": "10164d84c407fd9ac5918172f86a4b94bf2b9c0b"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Translation/zipball/10164d84c407fd9ac5918172f86a4b94bf2b9c0b",
-                "reference": "10164d84c407fd9ac5918172f86a4b94bf2b9c0b",
+                "url": "https://api.github.com/repos/symfony/Translation/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
             "require-dev": {
-                "symfony/config": ">=2.0,<2.4-dev",
+                "symfony/config": ">=2.0,<2.3-dev",
                 "symfony/yaml": ">=2.2,<3.0"
             },
             "suggest": {
@@ -1273,7 +1298,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.3-dev"
+                    "dev-master": "2.2-dev"
                 }
             },
             "autoload": {
@@ -1297,21 +1322,21 @@
             ],
             "description": "Symfony Translation Component",
             "homepage": "http://symfony.com",
-            "time": "2013-02-11 10:13:11"
+            "time": "2013-04-01 08:06:05"
         },
         {
             "name": "symfony/validator",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/Validator",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Validator.git",
-                "reference": "v2.2.0"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Validator/zipball/v2.2.0",
-                "reference": "v2.2.0",
+                "url": "https://api.github.com/repos/symfony/Validator/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -1358,21 +1383,21 @@
             ],
             "description": "Symfony Validator Component",
             "homepage": "http://symfony.com",
-            "time": "2013-02-28 14:29:34"
+            "time": "2013-04-01 08:06:05"
         },
         {
             "name": "symfony/yaml",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/Yaml",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Yaml.git",
-                "reference": "v2.2.0-RC3"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.0-RC3",
-                "reference": "v2.2.0-RC3",
+                "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -1405,20 +1430,20 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "http://symfony.com",
-            "time": "2013-01-27 16:49:19"
+            "time": "2013-03-23 07:49:54"
         },
         {
             "name": "twig/twig",
-            "version": "v1.12.1",
+            "version": "v1.12.3",
             "source": {
                 "type": "git",
-                "url": "git://github.com/fabpot/Twig.git",
-                "reference": "v1.12.1"
+                "url": "https://github.com/fabpot/Twig.git",
+                "reference": "v1.12.3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/fabpot/Twig/archive/v1.12.1.zip",
-                "reference": "v1.12.1",
+                "url": "https://api.github.com/repos/fabpot/Twig/zipball/v1.12.3",
+                "reference": "v1.12.3",
                 "shasum": ""
             },
             "require": {
@@ -1454,7 +1479,7 @@
             "keywords": [
                 "templating"
             ],
-            "time": "2013-01-15 20:03:52"
+            "time": "2013-04-08 12:40:11"
         }
     ],
     "packages-dev": [
@@ -1463,10 +1488,16 @@
     "aliases": [
 
     ],
-    "minimum-stability": "dev",
+    "minimum-stability": "stable",
     "stability-flags": {
         "kriswallsmith/assetic": 15,
-        "symfony-cmf/routing": 20,
+        "symfony-cmf/routing": 15,
         "easyrdf/easyrdf": 10
-    }
+    },
+    "platform": [
+
+    ],
+    "platform-dev": [
+
+    ]
 }
diff --git a/core/.gitignore b/core/.gitignore
new file mode 100644
index 000000000000..91bd4cddab29
--- /dev/null
+++ b/core/.gitignore
@@ -0,0 +1,16 @@
+# SimpleTest breaks with the following files, so avoid adding them.
+vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php
+vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php
+vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services11.php
+
+# The resources for the Validator component are not required.
+vendor/symfony/validator/Symfony/Component/Validator/Resources
+
+# Symfony Validator depends on Symfony Translation but only requires the
+# TranslatorInterface. Thus, we add only the required interface from Symfony
+# Translation by ignoring everything except the interface.
+vendor/symfony/translation/Symfony/Component/Translation/*
+!vendor/symfony/translation/Symfony/Component/Translation/TranslatorInterface.php
+
+# PHPUnit provides some binary dependencies that are already available.
+vendor/phpunit/phpunit/build/dependencies
diff --git a/core/vendor/.gitignore b/core/vendor/.gitignore
deleted file mode 100644
index 2e604cb5bcd7..000000000000
--- a/core/vendor/.gitignore
+++ /dev/null
@@ -1,14 +0,0 @@
-# SimpleTest breaks with the following files, so avoid adding them.
-symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php
-symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php
-symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services11.php
-
-# The resources for the Validator component are not required.
-symfony/validator/Symfony/Component/Validator/Resources
-
-# Symfony Validator depends on Symfony Translation but only requires the
-# TranslatorInterface. Thus, we add only the required interface from Symfony
-# Translation by ignoring everything except the interface.
-symfony/translation/Symfony/Component/Translation/*
-!symfony/translation/Symfony/Component/Translation/TranslatorInterface.php
-
diff --git a/core/vendor/autoload.php b/core/vendor/autoload.php
index f77afa164938..9c5340f62335 100644
--- a/core/vendor/autoload.php
+++ b/core/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInit7f0efddf867398398517e0ca6863b8f1::getLoader();
+return ComposerAutoloaderInitc244582ae2d491644d70197d64a9670b::getLoader();
diff --git a/core/vendor/composer/ClassLoader.php b/core/vendor/composer/ClassLoader.php
index 596c65d0fe52..3679d464614c 100644
--- a/core/vendor/composer/ClassLoader.php
+++ b/core/vendor/composer/ClassLoader.php
@@ -49,7 +49,7 @@ class ClassLoader
 
     public function getPrefixes()
     {
-        return $this->prefixes;
+        return call_user_func_array('array_merge', $this->prefixes);
     }
 
     public function getFallbackDirs()
@@ -98,19 +98,21 @@ public function add($prefix, $paths, $prepend = false)
 
             return;
         }
-        if (!isset($this->prefixes[$prefix])) {
-            $this->prefixes[$prefix] = (array) $paths;
+
+        $first = $prefix[0];
+        if (!isset($this->prefixes[$first][$prefix])) {
+            $this->prefixes[$first][$prefix] = (array) $paths;
 
             return;
         }
         if ($prepend) {
-            $this->prefixes[$prefix] = array_merge(
+            $this->prefixes[$first][$prefix] = array_merge(
                 (array) $paths,
-                $this->prefixes[$prefix]
+                $this->prefixes[$first][$prefix]
             );
         } else {
-            $this->prefixes[$prefix] = array_merge(
-                $this->prefixes[$prefix],
+            $this->prefixes[$first][$prefix] = array_merge(
+                $this->prefixes[$first][$prefix],
                 (array) $paths
             );
         }
@@ -129,7 +131,7 @@ public function set($prefix, $paths)
 
             return;
         }
-        $this->prefixes[$prefix] = (array) $paths;
+        $this->prefixes[substr($prefix, 0, 1)][$prefix] = (array) $paths;
     }
 
     /**
@@ -175,7 +177,7 @@ public function unregister()
      * Loads the given class or interface.
      *
      * @param  string    $class The name of the class
-     * @return bool|null True, if loaded
+     * @return bool|null True if loaded, null otherwise
      */
     public function loadClass($class)
     {
@@ -191,7 +193,7 @@ public function loadClass($class)
      *
      * @param string $class The name of the class
      *
-     * @return string|null The path, if found
+     * @return string|false The path if found, false otherwise
      */
     public function findFile($class)
     {
@@ -205,7 +207,7 @@ public function findFile($class)
 
         if (false !== $pos = strrpos($class, '\\')) {
             // namespaced class name
-            $classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)) . DIRECTORY_SEPARATOR;
+            $classPath = strtr(substr($class, 0, $pos), '\\', DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
             $className = substr($class, $pos + 1);
         } else {
             // PEAR-like class name
@@ -213,13 +215,16 @@ public function findFile($class)
             $className = $class;
         }
 
-        $classPath .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
+        $classPath .= strtr($className, '_', DIRECTORY_SEPARATOR) . '.php';
 
-        foreach ($this->prefixes as $prefix => $dirs) {
-            if (0 === strpos($class, $prefix)) {
-                foreach ($dirs as $dir) {
-                    if (file_exists($dir . DIRECTORY_SEPARATOR . $classPath)) {
-                        return $dir . DIRECTORY_SEPARATOR . $classPath;
+        $first = $class[0];
+        if (isset($this->prefixes[$first])) {
+            foreach ($this->prefixes[$first] as $prefix => $dirs) {
+                if (0 === strpos($class, $prefix)) {
+                    foreach ($dirs as $dir) {
+                        if (file_exists($dir . DIRECTORY_SEPARATOR . $classPath)) {
+                            return $dir . DIRECTORY_SEPARATOR . $classPath;
+                        }
                     }
                 }
             }
diff --git a/core/vendor/composer/autoload_classmap.php b/core/vendor/composer/autoload_classmap.php
index 060e183e4d1f..002677e1ffa8 100644
--- a/core/vendor/composer/autoload_classmap.php
+++ b/core/vendor/composer/autoload_classmap.php
@@ -2,351 +2,351 @@
 
 // autoload_classmap.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
-$baseDir = dirname($vendorDir);
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
 
 return array(
-    'File_Iterator' => $baseDir . '/vendor/phpunit/php-file-iterator/File/Iterator.php',
-    'File_Iterator_Facade' => $baseDir . '/vendor/phpunit/php-file-iterator/File/Iterator/Facade.php',
-    'File_Iterator_Factory' => $baseDir . '/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php',
-    'PHPUnit_Extensions_GroupTestSuite' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Extensions/GroupTestSuite.php',
-    'PHPUnit_Extensions_PhptTestCase' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Extensions/PhptTestCase.php',
-    'PHPUnit_Extensions_PhptTestCase_Logger' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Extensions/PhptTestCase/Logger.php',
-    'PHPUnit_Extensions_PhptTestSuite' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Extensions/PhptTestSuite.php',
-    'PHPUnit_Extensions_RepeatedTest' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Extensions/RepeatedTest.php',
-    'PHPUnit_Extensions_TestDecorator' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Extensions/TestDecorator.php',
-    'PHPUnit_Extensions_TicketListener' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Extensions/TicketListener.php',
-    'PHPUnit_Framework_Assert' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Assert.php',
-    'PHPUnit_Framework_AssertionFailedError' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/AssertionFailedError.php',
-    'PHPUnit_Framework_Comparator' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator.php',
-    'PHPUnit_Framework_ComparatorFactory' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/ComparatorFactory.php',
-    'PHPUnit_Framework_Comparator_Array' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Array.php',
-    'PHPUnit_Framework_Comparator_DOMDocument' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/DOMDocument.php',
-    'PHPUnit_Framework_Comparator_Double' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Double.php',
-    'PHPUnit_Framework_Comparator_Exception' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Exception.php',
-    'PHPUnit_Framework_Comparator_MockObject' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/MockObject.php',
-    'PHPUnit_Framework_Comparator_Numeric' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Numeric.php',
-    'PHPUnit_Framework_Comparator_Object' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Object.php',
-    'PHPUnit_Framework_Comparator_Resource' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Resource.php',
-    'PHPUnit_Framework_Comparator_Scalar' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Scalar.php',
-    'PHPUnit_Framework_Comparator_SplObjectStorage' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/SplObjectStorage.php',
-    'PHPUnit_Framework_Comparator_Type' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Type.php',
-    'PHPUnit_Framework_ComparisonFailure' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/ComparisonFailure.php',
-    'PHPUnit_Framework_Constraint' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint.php',
-    'PHPUnit_Framework_Constraint_And' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/And.php',
-    'PHPUnit_Framework_Constraint_ArrayHasKey' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ArrayHasKey.php',
-    'PHPUnit_Framework_Constraint_Attribute' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Attribute.php',
-    'PHPUnit_Framework_Constraint_Callback' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Callback.php',
-    'PHPUnit_Framework_Constraint_ClassHasAttribute' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ClassHasAttribute.php',
-    'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ClassHasStaticAttribute.php',
-    'PHPUnit_Framework_Constraint_Composite' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Composite.php',
-    'PHPUnit_Framework_Constraint_Count' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Count.php',
-    'PHPUnit_Framework_Constraint_Exception' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Exception.php',
-    'PHPUnit_Framework_Constraint_ExceptionCode' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ExceptionCode.php',
-    'PHPUnit_Framework_Constraint_ExceptionMessage' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ExceptionMessage.php',
-    'PHPUnit_Framework_Constraint_FileExists' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/FileExists.php',
-    'PHPUnit_Framework_Constraint_GreaterThan' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/GreaterThan.php',
-    'PHPUnit_Framework_Constraint_IsAnything' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsAnything.php',
-    'PHPUnit_Framework_Constraint_IsEmpty' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsEmpty.php',
-    'PHPUnit_Framework_Constraint_IsEqual' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsEqual.php',
-    'PHPUnit_Framework_Constraint_IsFalse' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsFalse.php',
-    'PHPUnit_Framework_Constraint_IsIdentical' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsIdentical.php',
-    'PHPUnit_Framework_Constraint_IsInstanceOf' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsInstanceOf.php',
-    'PHPUnit_Framework_Constraint_IsNull' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsNull.php',
-    'PHPUnit_Framework_Constraint_IsTrue' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsTrue.php',
-    'PHPUnit_Framework_Constraint_IsType' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsType.php',
-    'PHPUnit_Framework_Constraint_JsonMatches' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/JsonMatches.php',
-    'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
-    'PHPUnit_Framework_Constraint_LessThan' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/LessThan.php',
-    'PHPUnit_Framework_Constraint_Not' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Not.php',
-    'PHPUnit_Framework_Constraint_ObjectHasAttribute' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ObjectHasAttribute.php',
-    'PHPUnit_Framework_Constraint_Or' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Or.php',
-    'PHPUnit_Framework_Constraint_PCREMatch' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/PCREMatch.php',
-    'PHPUnit_Framework_Constraint_SameSize' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/SameSize.php',
-    'PHPUnit_Framework_Constraint_StringContains' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/StringContains.php',
-    'PHPUnit_Framework_Constraint_StringEndsWith' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/StringEndsWith.php',
-    'PHPUnit_Framework_Constraint_StringMatches' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/StringMatches.php',
-    'PHPUnit_Framework_Constraint_StringStartsWith' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/StringStartsWith.php',
-    'PHPUnit_Framework_Constraint_TraversableContains' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/TraversableContains.php',
-    'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/TraversableContainsOnly.php',
-    'PHPUnit_Framework_Constraint_Xor' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Xor.php',
-    'PHPUnit_Framework_Error' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Error.php',
-    'PHPUnit_Framework_Error_Deprecated' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Error/Deprecated.php',
-    'PHPUnit_Framework_Error_Notice' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Error/Notice.php',
-    'PHPUnit_Framework_Error_Warning' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Error/Warning.php',
-    'PHPUnit_Framework_Exception' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Exception.php',
-    'PHPUnit_Framework_ExpectationFailedException' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/ExpectationFailedException.php',
-    'PHPUnit_Framework_IncompleteTest' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/IncompleteTest.php',
-    'PHPUnit_Framework_IncompleteTestError' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/IncompleteTestError.php',
-    'PHPUnit_Framework_MockObject_Builder_Identity' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Identity.php',
-    'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/InvocationMocker.php',
-    'PHPUnit_Framework_MockObject_Builder_Match' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Match.php',
-    'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/MethodNameMatch.php',
-    'PHPUnit_Framework_MockObject_Builder_Namespace' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Namespace.php',
-    'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/ParametersMatch.php',
-    'PHPUnit_Framework_MockObject_Builder_Stub' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Stub.php',
-    'PHPUnit_Framework_MockObject_Generator' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator.php',
-    'PHPUnit_Framework_MockObject_Invocation' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation.php',
-    'PHPUnit_Framework_MockObject_InvocationMocker' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/InvocationMocker.php',
-    'PHPUnit_Framework_MockObject_Invocation_Object' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation/Object.php',
-    'PHPUnit_Framework_MockObject_Invocation_Static' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation/Static.php',
-    'PHPUnit_Framework_MockObject_Invokable' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invokable.php',
-    'PHPUnit_Framework_MockObject_Matcher' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher.php',
-    'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/AnyInvokedCount.php',
-    'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/AnyParameters.php',
-    'PHPUnit_Framework_MockObject_Matcher_Invocation' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/Invocation.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedAtIndex.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedCount.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedRecorder.php',
-    'PHPUnit_Framework_MockObject_Matcher_MethodName' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/MethodName.php',
-    'PHPUnit_Framework_MockObject_Matcher_Parameters' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/Parameters.php',
-    'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/StatelessInvocation.php',
-    'PHPUnit_Framework_MockObject_MockBuilder' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/MockBuilder.php',
-    'PHPUnit_Framework_MockObject_MockObject' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/MockObject.php',
-    'PHPUnit_Framework_MockObject_Stub' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub.php',
-    'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ConsecutiveCalls.php',
-    'PHPUnit_Framework_MockObject_Stub_Exception' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/Exception.php',
-    'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/MatcherCollection.php',
-    'PHPUnit_Framework_MockObject_Stub_Return' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/Return.php',
-    'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnArgument.php',
-    'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnCallback.php',
-    'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnSelf.php',
-    'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnValueMap.php',
-    'PHPUnit_Framework_MockObject_Verifiable' => $baseDir . '/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Verifiable.php',
-    'PHPUnit_Framework_OutputError' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/OutputError.php',
-    'PHPUnit_Framework_SelfDescribing' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/SelfDescribing.php',
-    'PHPUnit_Framework_SkippedTest' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/SkippedTest.php',
-    'PHPUnit_Framework_SkippedTestError' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/SkippedTestError.php',
-    'PHPUnit_Framework_SkippedTestSuiteError' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/SkippedTestSuiteError.php',
-    'PHPUnit_Framework_SyntheticError' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/SyntheticError.php',
-    'PHPUnit_Framework_Test' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Test.php',
-    'PHPUnit_Framework_TestCase' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php',
-    'PHPUnit_Framework_TestFailure' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/TestFailure.php',
-    'PHPUnit_Framework_TestListener' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/TestListener.php',
-    'PHPUnit_Framework_TestResult' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php',
-    'PHPUnit_Framework_TestSuite' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php',
-    'PHPUnit_Framework_TestSuite_DataProvider' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite/DataProvider.php',
-    'PHPUnit_Framework_Warning' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Framework/Warning.php',
-    'PHPUnit_Runner_BaseTestRunner' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Runner/BaseTestRunner.php',
-    'PHPUnit_Runner_StandardTestSuiteLoader' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Runner/StandardTestSuiteLoader.php',
-    'PHPUnit_Runner_TestSuiteLoader' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Runner/TestSuiteLoader.php',
-    'PHPUnit_Runner_Version' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Runner/Version.php',
-    'PHPUnit_TextUI_Command' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php',
-    'PHPUnit_TextUI_ResultPrinter' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/TextUI/ResultPrinter.php',
-    'PHPUnit_TextUI_TestRunner' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php',
-    'PHPUnit_Util_Class' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Class.php',
-    'PHPUnit_Util_Configuration' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php',
-    'PHPUnit_Util_DeprecatedFeature' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/DeprecatedFeature.php',
-    'PHPUnit_Util_DeprecatedFeature_Logger' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/DeprecatedFeature/Logger.php',
-    'PHPUnit_Util_Diff' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Diff.php',
-    'PHPUnit_Util_ErrorHandler' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/ErrorHandler.php',
-    'PHPUnit_Util_Fileloader' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php',
-    'PHPUnit_Util_Filesystem' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Filesystem.php',
-    'PHPUnit_Util_Filter' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Filter.php',
-    'PHPUnit_Util_Getopt' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Getopt.php',
-    'PHPUnit_Util_GlobalState' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/GlobalState.php',
-    'PHPUnit_Util_InvalidArgumentHelper' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/InvalidArgumentHelper.php',
-    'PHPUnit_Util_Log_JSON' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Log/JSON.php',
-    'PHPUnit_Util_Log_JUnit' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Log/JUnit.php',
-    'PHPUnit_Util_Log_TAP' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Log/TAP.php',
-    'PHPUnit_Util_PHP' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/PHP.php',
-    'PHPUnit_Util_PHP_Default' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/PHP/Default.php',
-    'PHPUnit_Util_PHP_Windows' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/PHP/Windows.php',
-    'PHPUnit_Util_Printer' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Printer.php',
-    'PHPUnit_Util_String' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/String.php',
-    'PHPUnit_Util_Test' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Test.php',
-    'PHPUnit_Util_TestDox_NamePrettifier' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/TestDox/NamePrettifier.php',
-    'PHPUnit_Util_TestDox_ResultPrinter' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter.php',
-    'PHPUnit_Util_TestDox_ResultPrinter_HTML' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter/HTML.php',
-    'PHPUnit_Util_TestDox_ResultPrinter_Text' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter/Text.php',
-    'PHPUnit_Util_TestSuiteIterator' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/TestSuiteIterator.php',
-    'PHPUnit_Util_Type' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/Type.php',
-    'PHPUnit_Util_XML' => $baseDir . '/vendor/phpunit/phpunit/PHPUnit/Util/XML.php',
-    'PHP_CodeCoverage' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage.php',
-    'PHP_CodeCoverage_Driver' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Driver.php',
-    'PHP_CodeCoverage_Driver_Xdebug' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Driver/Xdebug.php',
-    'PHP_CodeCoverage_Exception' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Exception.php',
-    'PHP_CodeCoverage_Filter' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Filter.php',
-    'PHP_CodeCoverage_Report_Clover' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Clover.php',
-    'PHP_CodeCoverage_Report_Factory' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Factory.php',
-    'PHP_CodeCoverage_Report_HTML' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML.php',
-    'PHP_CodeCoverage_Report_HTML_Renderer' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer.php',
-    'PHP_CodeCoverage_Report_HTML_Renderer_Dashboard' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Dashboard.php',
-    'PHP_CodeCoverage_Report_HTML_Renderer_Directory' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Directory.php',
-    'PHP_CodeCoverage_Report_HTML_Renderer_File' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/File.php',
-    'PHP_CodeCoverage_Report_Node' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node.php',
-    'PHP_CodeCoverage_Report_Node_Directory' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/Directory.php',
-    'PHP_CodeCoverage_Report_Node_File' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/File.php',
-    'PHP_CodeCoverage_Report_Node_Iterator' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/Iterator.php',
-    'PHP_CodeCoverage_Report_PHP' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/PHP.php',
-    'PHP_CodeCoverage_Report_Text' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Text.php',
-    'PHP_CodeCoverage_Util' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Util.php',
-    'PHP_CodeCoverage_Util_InvalidArgumentHelper' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Util/InvalidArgumentHelper.php',
-    'PHP_CodeCoverage_Version' => $baseDir . '/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Version.php',
-    'PHP_Timer' => $baseDir . '/vendor/phpunit/php-timer/PHP/Timer.php',
-    'PHP_Token' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_TokenWithScope' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_TokenWithScopeAndVisibility' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ABSTRACT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_AMPERSAND' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_AND_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ARRAY' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ARRAY_CAST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_AS' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_AT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_BACKTICK' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_BAD_CHARACTER' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_BOOLEAN_AND' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_BOOLEAN_OR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_BOOL_CAST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_BREAK' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CALLABLE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CARET' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CASE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CATCH' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CHARACTER' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CLASS' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CLASS_C' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CLONE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CLOSE_BRACKET' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CLOSE_CURLY' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CLOSE_SQUARE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CLOSE_TAG' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_COLON' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_COMMA' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_COMMENT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CONCAT_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CONST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CONSTANT_ENCAPSED_STRING' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CONTINUE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_CURLY_OPEN' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DEC' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DECLARE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DEFAULT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DIR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DIV' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DIV_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DNUMBER' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DO' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DOC_COMMENT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DOLLAR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DOT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DOUBLE_ARROW' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DOUBLE_CAST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DOUBLE_COLON' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_DOUBLE_QUOTES' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ECHO' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ELSE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ELSEIF' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_EMPTY' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ENCAPSED_AND_WHITESPACE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ENDDECLARE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ENDFOR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ENDFOREACH' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ENDIF' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ENDSWITCH' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ENDWHILE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_END_HEREDOC' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_EVAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_EXCLAMATION_MARK' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_EXIT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_EXTENDS' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_FILE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_FINAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_FOR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_FOREACH' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_FUNCTION' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_FUNC_C' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_GLOBAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_GOTO' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_GT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_HALT_COMPILER' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_IF' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_IMPLEMENTS' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_INC' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_INCLUDE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_INCLUDE_ONCE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_INLINE_HTML' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_INSTANCEOF' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_INSTEADOF' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_INTERFACE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_INT_CAST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_ISSET' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_IS_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_IS_GREATER_OR_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_IS_IDENTICAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_IS_NOT_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_IS_NOT_IDENTICAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_IS_SMALLER_OR_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_Includes' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_LINE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_LIST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_LNUMBER' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_LOGICAL_AND' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_LOGICAL_OR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_LOGICAL_XOR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_LT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_METHOD_C' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_MINUS' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_MINUS_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_MOD_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_MULT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_MUL_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_NAMESPACE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_NEW' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_NS_C' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_NS_SEPARATOR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_NUM_STRING' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_OBJECT_CAST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_OBJECT_OPERATOR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_OPEN_BRACKET' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_OPEN_CURLY' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_OPEN_SQUARE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_OPEN_TAG' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_OPEN_TAG_WITH_ECHO' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_OR_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PERCENT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PIPE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PLUS' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PLUS_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PRINT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PRIVATE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PROTECTED' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_PUBLIC' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_QUESTION_MARK' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_REQUIRE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_REQUIRE_ONCE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_RETURN' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_SEMICOLON' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_SL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_SL_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_SR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_SR_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_START_HEREDOC' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_STATIC' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_STRING' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_STRING_CAST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_STRING_VARNAME' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_SWITCH' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_Stream' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token/Stream.php',
-    'PHP_Token_Stream_CachingFactory' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token/Stream/CachingFactory.php',
-    'PHP_Token_THROW' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_TILDE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_TRAIT' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_TRAIT_C' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_TRY' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_UNSET' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_UNSET_CAST' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_USE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_VAR' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_VARIABLE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_WHILE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_WHITESPACE' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'PHP_Token_XOR_EQUAL' => $baseDir . '/vendor/phpunit/php-token-stream/PHP/Token.php',
-    'SessionHandlerInterface' => $baseDir . '/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php',
-    'Text_Template' => $baseDir . '/vendor/phpunit/php-text-template/Text/Template.php',
+    'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator.php',
+    'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator/Facade.php',
+    'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator/Factory.php',
+    'PHPUnit_Extensions_GroupTestSuite' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/GroupTestSuite.php',
+    'PHPUnit_Extensions_PhptTestCase' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/PhptTestCase.php',
+    'PHPUnit_Extensions_PhptTestCase_Logger' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/PhptTestCase/Logger.php',
+    'PHPUnit_Extensions_PhptTestSuite' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/PhptTestSuite.php',
+    'PHPUnit_Extensions_RepeatedTest' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/RepeatedTest.php',
+    'PHPUnit_Extensions_TestDecorator' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/TestDecorator.php',
+    'PHPUnit_Extensions_TicketListener' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/TicketListener.php',
+    'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Assert.php',
+    'PHPUnit_Framework_AssertionFailedError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/AssertionFailedError.php',
+    'PHPUnit_Framework_Comparator' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator.php',
+    'PHPUnit_Framework_ComparatorFactory' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/ComparatorFactory.php',
+    'PHPUnit_Framework_Comparator_Array' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Array.php',
+    'PHPUnit_Framework_Comparator_DOMDocument' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/DOMDocument.php',
+    'PHPUnit_Framework_Comparator_Double' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Double.php',
+    'PHPUnit_Framework_Comparator_Exception' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Exception.php',
+    'PHPUnit_Framework_Comparator_MockObject' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/MockObject.php',
+    'PHPUnit_Framework_Comparator_Numeric' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Numeric.php',
+    'PHPUnit_Framework_Comparator_Object' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Object.php',
+    'PHPUnit_Framework_Comparator_Resource' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Resource.php',
+    'PHPUnit_Framework_Comparator_Scalar' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Scalar.php',
+    'PHPUnit_Framework_Comparator_SplObjectStorage' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/SplObjectStorage.php',
+    'PHPUnit_Framework_Comparator_Type' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Type.php',
+    'PHPUnit_Framework_ComparisonFailure' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/ComparisonFailure.php',
+    'PHPUnit_Framework_Constraint' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint.php',
+    'PHPUnit_Framework_Constraint_And' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/And.php',
+    'PHPUnit_Framework_Constraint_ArrayHasKey' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ArrayHasKey.php',
+    'PHPUnit_Framework_Constraint_Attribute' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Attribute.php',
+    'PHPUnit_Framework_Constraint_Callback' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Callback.php',
+    'PHPUnit_Framework_Constraint_ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ClassHasAttribute.php',
+    'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ClassHasStaticAttribute.php',
+    'PHPUnit_Framework_Constraint_Composite' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Composite.php',
+    'PHPUnit_Framework_Constraint_Count' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Count.php',
+    'PHPUnit_Framework_Constraint_Exception' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Exception.php',
+    'PHPUnit_Framework_Constraint_ExceptionCode' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ExceptionCode.php',
+    'PHPUnit_Framework_Constraint_ExceptionMessage' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ExceptionMessage.php',
+    'PHPUnit_Framework_Constraint_FileExists' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/FileExists.php',
+    'PHPUnit_Framework_Constraint_GreaterThan' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/GreaterThan.php',
+    'PHPUnit_Framework_Constraint_IsAnything' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsAnything.php',
+    'PHPUnit_Framework_Constraint_IsEmpty' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsEmpty.php',
+    'PHPUnit_Framework_Constraint_IsEqual' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsEqual.php',
+    'PHPUnit_Framework_Constraint_IsFalse' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsFalse.php',
+    'PHPUnit_Framework_Constraint_IsIdentical' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsIdentical.php',
+    'PHPUnit_Framework_Constraint_IsInstanceOf' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsInstanceOf.php',
+    'PHPUnit_Framework_Constraint_IsNull' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsNull.php',
+    'PHPUnit_Framework_Constraint_IsTrue' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsTrue.php',
+    'PHPUnit_Framework_Constraint_IsType' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsType.php',
+    'PHPUnit_Framework_Constraint_JsonMatches' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/JsonMatches.php',
+    'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
+    'PHPUnit_Framework_Constraint_LessThan' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/LessThan.php',
+    'PHPUnit_Framework_Constraint_Not' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Not.php',
+    'PHPUnit_Framework_Constraint_ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ObjectHasAttribute.php',
+    'PHPUnit_Framework_Constraint_Or' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Or.php',
+    'PHPUnit_Framework_Constraint_PCREMatch' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/PCREMatch.php',
+    'PHPUnit_Framework_Constraint_SameSize' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/SameSize.php',
+    'PHPUnit_Framework_Constraint_StringContains' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/StringContains.php',
+    'PHPUnit_Framework_Constraint_StringEndsWith' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/StringEndsWith.php',
+    'PHPUnit_Framework_Constraint_StringMatches' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/StringMatches.php',
+    'PHPUnit_Framework_Constraint_StringStartsWith' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/StringStartsWith.php',
+    'PHPUnit_Framework_Constraint_TraversableContains' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/TraversableContains.php',
+    'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/TraversableContainsOnly.php',
+    'PHPUnit_Framework_Constraint_Xor' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Xor.php',
+    'PHPUnit_Framework_Error' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Error.php',
+    'PHPUnit_Framework_Error_Deprecated' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Error/Deprecated.php',
+    'PHPUnit_Framework_Error_Notice' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Error/Notice.php',
+    'PHPUnit_Framework_Error_Warning' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Error/Warning.php',
+    'PHPUnit_Framework_Exception' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Exception.php',
+    'PHPUnit_Framework_ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/ExpectationFailedException.php',
+    'PHPUnit_Framework_IncompleteTest' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/IncompleteTest.php',
+    'PHPUnit_Framework_IncompleteTestError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/IncompleteTestError.php',
+    'PHPUnit_Framework_MockObject_Builder_Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Identity.php',
+    'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/InvocationMocker.php',
+    'PHPUnit_Framework_MockObject_Builder_Match' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Match.php',
+    'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/MethodNameMatch.php',
+    'PHPUnit_Framework_MockObject_Builder_Namespace' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Namespace.php',
+    'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/ParametersMatch.php',
+    'PHPUnit_Framework_MockObject_Builder_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Stub.php',
+    'PHPUnit_Framework_MockObject_Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator.php',
+    'PHPUnit_Framework_MockObject_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation.php',
+    'PHPUnit_Framework_MockObject_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/InvocationMocker.php',
+    'PHPUnit_Framework_MockObject_Invocation_Object' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation/Object.php',
+    'PHPUnit_Framework_MockObject_Invocation_Static' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation/Static.php',
+    'PHPUnit_Framework_MockObject_Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invokable.php',
+    'PHPUnit_Framework_MockObject_Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher.php',
+    'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/AnyInvokedCount.php',
+    'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/AnyParameters.php',
+    'PHPUnit_Framework_MockObject_Matcher_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/Invocation.php',
+    'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedAtIndex.php',
+    'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
+    'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedCount.php',
+    'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedRecorder.php',
+    'PHPUnit_Framework_MockObject_Matcher_MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/MethodName.php',
+    'PHPUnit_Framework_MockObject_Matcher_Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/Parameters.php',
+    'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/StatelessInvocation.php',
+    'PHPUnit_Framework_MockObject_MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/MockBuilder.php',
+    'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/MockObject.php',
+    'PHPUnit_Framework_MockObject_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub.php',
+    'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ConsecutiveCalls.php',
+    'PHPUnit_Framework_MockObject_Stub_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/Exception.php',
+    'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/MatcherCollection.php',
+    'PHPUnit_Framework_MockObject_Stub_Return' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/Return.php',
+    'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnArgument.php',
+    'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnCallback.php',
+    'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnSelf.php',
+    'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnValueMap.php',
+    'PHPUnit_Framework_MockObject_Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Verifiable.php',
+    'PHPUnit_Framework_OutputError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/OutputError.php',
+    'PHPUnit_Framework_SelfDescribing' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SelfDescribing.php',
+    'PHPUnit_Framework_SkippedTest' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SkippedTest.php',
+    'PHPUnit_Framework_SkippedTestError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SkippedTestError.php',
+    'PHPUnit_Framework_SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SkippedTestSuiteError.php',
+    'PHPUnit_Framework_SyntheticError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SyntheticError.php',
+    'PHPUnit_Framework_Test' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Test.php',
+    'PHPUnit_Framework_TestCase' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestCase.php',
+    'PHPUnit_Framework_TestFailure' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestFailure.php',
+    'PHPUnit_Framework_TestListener' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestListener.php',
+    'PHPUnit_Framework_TestResult' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestResult.php',
+    'PHPUnit_Framework_TestSuite' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestSuite.php',
+    'PHPUnit_Framework_TestSuite_DataProvider' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestSuite/DataProvider.php',
+    'PHPUnit_Framework_Warning' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Warning.php',
+    'PHPUnit_Runner_BaseTestRunner' => $vendorDir . '/phpunit/phpunit/PHPUnit/Runner/BaseTestRunner.php',
+    'PHPUnit_Runner_StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/PHPUnit/Runner/StandardTestSuiteLoader.php',
+    'PHPUnit_Runner_TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/PHPUnit/Runner/TestSuiteLoader.php',
+    'PHPUnit_Runner_Version' => $vendorDir . '/phpunit/phpunit/PHPUnit/Runner/Version.php',
+    'PHPUnit_TextUI_Command' => $vendorDir . '/phpunit/phpunit/PHPUnit/TextUI/Command.php',
+    'PHPUnit_TextUI_ResultPrinter' => $vendorDir . '/phpunit/phpunit/PHPUnit/TextUI/ResultPrinter.php',
+    'PHPUnit_TextUI_TestRunner' => $vendorDir . '/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php',
+    'PHPUnit_Util_Class' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Class.php',
+    'PHPUnit_Util_Configuration' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Configuration.php',
+    'PHPUnit_Util_DeprecatedFeature' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/DeprecatedFeature.php',
+    'PHPUnit_Util_DeprecatedFeature_Logger' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/DeprecatedFeature/Logger.php',
+    'PHPUnit_Util_Diff' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Diff.php',
+    'PHPUnit_Util_ErrorHandler' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/ErrorHandler.php',
+    'PHPUnit_Util_Fileloader' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Fileloader.php',
+    'PHPUnit_Util_Filesystem' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Filesystem.php',
+    'PHPUnit_Util_Filter' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Filter.php',
+    'PHPUnit_Util_Getopt' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Getopt.php',
+    'PHPUnit_Util_GlobalState' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/GlobalState.php',
+    'PHPUnit_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/InvalidArgumentHelper.php',
+    'PHPUnit_Util_Log_JSON' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Log/JSON.php',
+    'PHPUnit_Util_Log_JUnit' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Log/JUnit.php',
+    'PHPUnit_Util_Log_TAP' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Log/TAP.php',
+    'PHPUnit_Util_PHP' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/PHP.php',
+    'PHPUnit_Util_PHP_Default' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/PHP/Default.php',
+    'PHPUnit_Util_PHP_Windows' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/PHP/Windows.php',
+    'PHPUnit_Util_Printer' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Printer.php',
+    'PHPUnit_Util_String' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/String.php',
+    'PHPUnit_Util_Test' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Test.php',
+    'PHPUnit_Util_TestDox_NamePrettifier' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestDox/NamePrettifier.php',
+    'PHPUnit_Util_TestDox_ResultPrinter' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter.php',
+    'PHPUnit_Util_TestDox_ResultPrinter_HTML' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter/HTML.php',
+    'PHPUnit_Util_TestDox_ResultPrinter_Text' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter/Text.php',
+    'PHPUnit_Util_TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestSuiteIterator.php',
+    'PHPUnit_Util_Type' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Type.php',
+    'PHPUnit_Util_XML' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/XML.php',
+    'PHP_CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage.php',
+    'PHP_CodeCoverage_Driver' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Driver.php',
+    'PHP_CodeCoverage_Driver_Xdebug' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Driver/Xdebug.php',
+    'PHP_CodeCoverage_Exception' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Exception.php',
+    'PHP_CodeCoverage_Filter' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Filter.php',
+    'PHP_CodeCoverage_Report_Clover' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Clover.php',
+    'PHP_CodeCoverage_Report_Factory' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Factory.php',
+    'PHP_CodeCoverage_Report_HTML' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML.php',
+    'PHP_CodeCoverage_Report_HTML_Renderer' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer.php',
+    'PHP_CodeCoverage_Report_HTML_Renderer_Dashboard' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Dashboard.php',
+    'PHP_CodeCoverage_Report_HTML_Renderer_Directory' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Directory.php',
+    'PHP_CodeCoverage_Report_HTML_Renderer_File' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/File.php',
+    'PHP_CodeCoverage_Report_Node' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node.php',
+    'PHP_CodeCoverage_Report_Node_Directory' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/Directory.php',
+    'PHP_CodeCoverage_Report_Node_File' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/File.php',
+    'PHP_CodeCoverage_Report_Node_Iterator' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/Iterator.php',
+    'PHP_CodeCoverage_Report_PHP' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/PHP.php',
+    'PHP_CodeCoverage_Report_Text' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Text.php',
+    'PHP_CodeCoverage_Util' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Util.php',
+    'PHP_CodeCoverage_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Util/InvalidArgumentHelper.php',
+    'PHP_CodeCoverage_Version' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Version.php',
+    'PHP_Timer' => $vendorDir . '/phpunit/php-timer/PHP/Timer.php',
+    'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/PHP/Token/Stream.php',
+    'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/PHP/Token/Stream/CachingFactory.php',
+    'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
+    'SessionHandlerInterface' => $vendorDir . '/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php',
+    'Text_Template' => $vendorDir . '/phpunit/php-text-template/Text/Template.php',
 );
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
index 3d8eaaf67ac9..c2c383ac30d2 100644
--- a/core/vendor/composer/autoload_namespaces.php
+++ b/core/vendor/composer/autoload_namespaces.php
@@ -2,32 +2,32 @@
 
 // autoload_namespaces.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
-$baseDir = dirname($vendorDir);
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
 
 return array(
-    'Drupal\\Driver' => $baseDir . '/../drivers/lib/',
-    'Drupal\\Core' => $baseDir . '/lib/',
-    'Drupal\\Component' => $baseDir . '/lib/',
-    'Twig_' => $vendorDir . '/twig/twig/lib/',
-    'Symfony\\Component\\Yaml\\' => $vendorDir . '/symfony/yaml/',
-    'Symfony\\Component\\Validator\\' => $vendorDir . '/symfony/validator/',
-    'Symfony\\Component\\Translation\\' => $vendorDir . '/symfony/translation/',
-    'Symfony\\Component\\Serializer\\' => $vendorDir . '/symfony/serializer/',
-    'Symfony\\Component\\Routing\\' => $vendorDir . '/symfony/routing/',
-    'Symfony\\Component\\Process' => $vendorDir . '/symfony/process/',
-    'Symfony\\Component\\HttpKernel\\' => $vendorDir . '/symfony/http-kernel/',
-    'Symfony\\Component\\HttpFoundation\\' => $vendorDir . '/symfony/http-foundation/',
-    'Symfony\\Component\\EventDispatcher\\' => $vendorDir . '/symfony/event-dispatcher/',
-    'Symfony\\Component\\DependencyInjection\\' => $vendorDir . '/symfony/dependency-injection/',
-    'Symfony\\Component\\ClassLoader\\' => $vendorDir . '/symfony/class-loader/',
-    'Symfony\\Cmf\\Component\\Routing' => $vendorDir . '/symfony-cmf/routing/',
-    'Psr\\Log\\' => $vendorDir . '/psr/log/',
-    'Guzzle\\Stream' => $vendorDir . '/guzzle/stream/',
-    'Guzzle\\Parser' => $vendorDir . '/guzzle/parser/',
-    'Guzzle\\Http' => $vendorDir . '/guzzle/http/',
-    'Guzzle\\Common' => $vendorDir . '/guzzle/common/',
-    'EasyRdf_' => $vendorDir . '/easyrdf/easyrdf/lib/',
-    'Doctrine\\Common' => $vendorDir . '/doctrine/common/lib/',
-    'Assetic' => $vendorDir . '/kriswallsmith/assetic/src/',
+    'Twig_' => array($vendorDir . '/twig/twig/lib'),
+    'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
+    'Symfony\\Component\\Validator\\' => array($vendorDir . '/symfony/validator'),
+    'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
+    'Symfony\\Component\\Serializer\\' => array($vendorDir . '/symfony/serializer'),
+    'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'),
+    'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'),
+    'Symfony\\Component\\HttpKernel\\' => array($vendorDir . '/symfony/http-kernel'),
+    'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'),
+    'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
+    'Symfony\\Component\\DependencyInjection\\' => array($vendorDir . '/symfony/dependency-injection'),
+    'Symfony\\Component\\ClassLoader\\' => array($vendorDir . '/symfony/class-loader'),
+    'Symfony\\Cmf\\Component\\Routing' => array($vendorDir . '/symfony-cmf/routing'),
+    'Psr\\Log\\' => array($vendorDir . '/psr/log'),
+    'Guzzle\\Stream' => array($vendorDir . '/guzzle/stream'),
+    'Guzzle\\Parser' => array($vendorDir . '/guzzle/parser'),
+    'Guzzle\\Http' => array($vendorDir . '/guzzle/http'),
+    'Guzzle\\Common' => array($vendorDir . '/guzzle/common'),
+    'EasyRdf_' => array($vendorDir . '/easyrdf/easyrdf/lib'),
+    'Drupal\\Driver' => array($baseDir . '/drivers/lib'),
+    'Drupal\\Core' => array($baseDir . '/core/lib'),
+    'Drupal\\Component' => array($baseDir . '/core/lib'),
+    'Doctrine\\Common' => array($vendorDir . '/doctrine/common/lib'),
+    'Assetic' => array($vendorDir . '/kriswallsmith/assetic/src'),
 );
diff --git a/core/vendor/composer/autoload_real.php b/core/vendor/composer/autoload_real.php
index 56de95f2dddd..5271995cd718 100644
--- a/core/vendor/composer/autoload_real.php
+++ b/core/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php generated by Composer
 
-class ComposerAutoloaderInit7f0efddf867398398517e0ca6863b8f1
+class ComposerAutoloaderInitc244582ae2d491644d70197d64a9670b
 {
     private static $loader;
 
@@ -19,12 +19,12 @@ public static function getLoader()
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit7f0efddf867398398517e0ca6863b8f1', 'loadClassLoader'));
+        spl_autoload_register(array('ComposerAutoloaderInitc244582ae2d491644d70197d64a9670b', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit7f0efddf867398398517e0ca6863b8f1', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInitc244582ae2d491644d70197d64a9670b', 'loadClassLoader'));
 
         $vendorDir = dirname(__DIR__);
-        $baseDir = dirname($vendorDir);
+        $baseDir = dirname(dirname($vendorDir));
 
         $includePaths = require __DIR__ . '/include_paths.php';
         array_push($includePaths, get_include_path());
@@ -32,7 +32,7 @@ public static function getLoader()
 
         $map = require __DIR__ . '/autoload_namespaces.php';
         foreach ($map as $namespace => $path) {
-            $loader->add($namespace, $path);
+            $loader->set($namespace, $path);
         }
 
         $classMap = require __DIR__ . '/autoload_classmap.php';
@@ -42,6 +42,8 @@ public static function getLoader()
 
         $loader->register(true);
 
+        require $vendorDir . '/kriswallsmith/assetic/src/functions.php';
+
         return $loader;
     }
 }
diff --git a/core/vendor/composer/include_paths.php b/core/vendor/composer/include_paths.php
index 533f1c8e3199..66f70988d77d 100644
--- a/core/vendor/composer/include_paths.php
+++ b/core/vendor/composer/include_paths.php
@@ -2,16 +2,16 @@
 
 // include_paths.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
-$baseDir = dirname($vendorDir);
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
 
 return array(
-    $vendorDir . '/phpunit/php-text-template/',
-    $vendorDir . '/phpunit/phpunit-mock-objects/',
-    $vendorDir . '/phpunit/php-timer/',
-    $vendorDir . '/phpunit/php-token-stream/',
-    $vendorDir . '/phpunit/php-file-iterator/',
-    $vendorDir . '/phpunit/php-code-coverage/',
-    $vendorDir . '/phpunit/phpunit/',
-    $vendorDir . '/phpunit/phpunit/../../symfony/yaml',
+    $vendorDir . '/phpunit/php-text-template',
+    $vendorDir . '/phpunit/phpunit-mock-objects',
+    $vendorDir . '/phpunit/php-timer',
+    $vendorDir . '/phpunit/php-token-stream',
+    $vendorDir . '/phpunit/php-file-iterator',
+    $vendorDir . '/phpunit/php-code-coverage',
+    $vendorDir . '/phpunit/phpunit',
+    $vendorDir . '/symfony/yaml',
 );
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index c66ffb31b097..fe8a28729458 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -1,55 +1,4 @@
 [
-    {
-        "name": "twig/twig",
-        "version": "v1.12.1",
-        "version_normalized": "1.12.1.0",
-        "source": {
-            "type": "git",
-            "url": "git://github.com/fabpot/Twig.git",
-            "reference": "v1.12.1"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://github.com/fabpot/Twig/archive/v1.12.1.zip",
-            "reference": "v1.12.1",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.2.4"
-        },
-        "time": "2013-01-15 20:03:52",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.12-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Twig_": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3"
-        ],
-        "authors": [
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Armin Ronacher",
-                "email": "armin.ronacher@active-4.com"
-            }
-        ],
-        "description": "Twig, the flexible, fast, and secure template language for PHP",
-        "homepage": "http://twig.sensiolabs.org",
-        "keywords": [
-            "templating"
-        ]
-    },
     {
         "name": "doctrine/common",
         "version": "2.3.0",
@@ -105,7 +54,7 @@
                 "email": "kontakt@beberlei.de"
             },
             {
-                "name": "Johannes Schmitt",
+                "name": "Johannes M. Schmitt",
                 "email": "schmittjoh@gmail.com",
                 "homepage": "https://github.com/schmittjoh",
                 "role": "Developer of wrapped JMSSerializerBundle"
@@ -122,30 +71,26 @@
         ]
     },
     {
-        "name": "symfony/process",
-        "version": "2.1.x-dev",
-        "version_normalized": "2.1.9999999.9999999-dev",
-        "target-dir": "Symfony/Component/Process",
+        "name": "psr/log",
+        "version": "1.0.0",
+        "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Process.git",
-            "reference": "v2.1.8"
+            "url": "https://github.com/php-fig/log",
+            "reference": "1.0.0"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Process/zipball/v2.1.8",
-            "reference": "v2.1.8",
+            "url": "https://github.com/php-fig/log/archive/1.0.0.zip",
+            "reference": "1.0.0",
             "shasum": ""
         },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "time": "2013-02-18 21:27:57",
+        "time": "2012-12-21 11:40:51",
         "type": "library",
-        "installation-source": "source",
+        "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Process": ""
+                "Psr\\Log\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -154,140 +99,88 @@
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "PHP-FIG",
+                "homepage": "http://www.php-fig.org/"
             }
         ],
-        "description": "Symfony Process Component",
-        "homepage": "http://symfony.com"
+        "description": "Common interface for logging libraries",
+        "keywords": [
+            "log",
+            "psr",
+            "psr-3"
+        ]
     },
     {
-        "name": "kriswallsmith/assetic",
-        "version": "v1.1.0-alpha1",
-        "version_normalized": "1.1.0.0-alpha1",
+        "name": "twig/twig",
+        "version": "v1.12.3",
+        "version_normalized": "1.12.3.0",
         "source": {
             "type": "git",
-            "url": "http://github.com/kriswallsmith/assetic.git",
-            "reference": "v1.1.0-alpha1"
+            "url": "https://github.com/fabpot/Twig.git",
+            "reference": "v1.12.3"
         },
         "dist": {
             "type": "zip",
-            "url": "https://github.com/kriswallsmith/assetic/zipball/v1.1.0-alpha1",
-            "reference": "v1.1.0-alpha1",
+            "url": "https://api.github.com/repos/fabpot/Twig/zipball/v1.12.3",
+            "reference": "v1.12.3",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.1",
-            "symfony/process": "2.1.*"
-        },
-        "require-dev": {
-            "leafo/lessphp": "*",
-            "leafo/scssphp": "*",
-            "ptachoire/cssembed": "*",
-            "twig/twig": ">=1.6.0,<2.0"
-        },
-        "suggest": {
-            "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
-            "leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
-            "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
-            "twig/twig": "Assetic provides the integration with the Twig templating engine"
+            "php": ">=5.2.4"
         },
-        "time": "2012-08-28 05:33:44",
+        "time": "2013-04-08 12:40:11",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.1-dev"
+                "dev-master": "1.12-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Assetic": "src/"
+                "Twig_": "lib/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3"
         ],
         "authors": [
             {
-                "name": "Kris Wallsmith",
-                "email": "kris.wallsmith@gmail.com",
-                "homepage": "http://kriswallsmith.net/"
-            }
-        ],
-        "description": "Asset Management for PHP",
-        "homepage": "https://github.com/kriswallsmith/assetic",
-        "keywords": [
-            "assets",
-            "compression",
-            "minification"
-        ]
-    },
-    {
-        "name": "psr/log",
-        "version": "1.0.0",
-        "version_normalized": "1.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/php-fig/log",
-            "reference": "1.0.0"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://github.com/php-fig/log/archive/1.0.0.zip",
-            "reference": "1.0.0",
-            "shasum": ""
-        },
-        "time": "2012-12-21 11:40:51",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Psr\\Log\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
             {
-                "name": "PHP-FIG",
-                "homepage": "http://www.php-fig.org/"
+                "name": "Armin Ronacher",
+                "email": "armin.ronacher@active-4.com"
             }
         ],
-        "description": "Common interface for logging libraries",
+        "description": "Twig, the flexible, fast, and secure template language for PHP",
+        "homepage": "http://twig.sensiolabs.org",
         "keywords": [
-            "log",
-            "psr",
-            "psr-3"
+            "templating"
         ]
     },
     {
         "name": "symfony/http-foundation",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
         "target-dir": "Symfony/Component/HttpFoundation",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/HttpFoundation.git",
-            "reference": "v2.2.0"
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/v2.2.0",
-            "reference": "v2.2.0",
+            "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2013-02-26 09:42:13",
+        "time": "2013-04-06 10:15:43",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -322,18 +215,18 @@
     },
     {
         "name": "symfony/event-dispatcher",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
         "target-dir": "Symfony/Component/EventDispatcher",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/EventDispatcher.git",
-            "reference": "v2.2.0-RC3"
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.2.0-RC3",
-            "reference": "v2.2.0-RC3",
+            "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
@@ -378,18 +271,18 @@
     },
     {
         "name": "symfony/http-kernel",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
         "target-dir": "Symfony/Component/HttpKernel",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/HttpKernel.git",
-            "reference": "v2.2.0"
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/v2.2.0",
-            "reference": "v2.2.0",
+            "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
@@ -417,7 +310,7 @@
             "symfony/dependency-injection": "2.2.*",
             "symfony/finder": "2.2.*"
         },
-        "time": "2013-03-01 06:52:29",
+        "time": "2013-04-06 10:16:33",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -449,18 +342,18 @@
     },
     {
         "name": "symfony/routing",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
         "target-dir": "Symfony/Component/Routing",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/Routing.git",
-            "reference": "v2.2.0-RC3"
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Routing/zipball/v2.2.0-RC3",
-            "reference": "v2.2.0-RC3",
+            "url": "https://api.github.com/repos/symfony/Routing/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
@@ -477,7 +370,7 @@
             "symfony/config": "2.2.*",
             "symfony/yaml": "2.2.*"
         },
-        "time": "2013-02-11 11:24:47",
+        "time": "2013-03-23 12:03:22",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -507,57 +400,6 @@
         "description": "Symfony Routing Component",
         "homepage": "http://symfony.com"
     },
-    {
-        "name": "symfony-cmf/routing",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "target-dir": "Symfony/Cmf/Component/Routing",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony-cmf/Routing.git",
-            "reference": "ea4a10"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/43585d83fb07f9354c098fcae593010567f53d45",
-            "reference": "ea4a10",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2",
-            "symfony/http-kernel": ">=2.1,<2.3-dev",
-            "symfony/routing": ">=2.1,<2.3-dev"
-        },
-        "time": "2013-02-22 13:50:34",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0-dev"
-            }
-        },
-        "installation-source": "source",
-        "autoload": {
-            "psr-0": {
-                "Symfony\\Cmf\\Component\\Routing": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Symfony CMF Community",
-                "homepage": "https://github.com/symfony-cmf/Routing/contributors"
-            }
-        ],
-        "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers",
-        "homepage": "http://cmf.symfony.com",
-        "keywords": [
-            "database",
-            "routing"
-        ]
-    },
     {
         "name": "easyrdf/easyrdf",
         "version": "0.8.0-beta.1",
@@ -615,25 +457,28 @@
         ]
     },
     {
-        "name": "symfony/yaml",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
-        "target-dir": "Symfony/Component/Yaml",
+        "name": "symfony/class-loader",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
+        "target-dir": "Symfony/Component/ClassLoader",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Yaml.git",
-            "reference": "v2.2.0-RC3"
+            "url": "https://github.com/symfony/ClassLoader.git",
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.0-RC3",
-            "reference": "v2.2.0-RC3",
+            "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2013-01-27 16:49:19",
+        "require-dev": {
+            "symfony/finder": ">=2.0,<3.0"
+        },
+        "time": "2013-03-19 08:32:26",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -643,7 +488,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Yaml\\": ""
+                "Symfony\\Component\\ClassLoader\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -660,400 +505,458 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony Yaml Component",
+        "description": "Symfony ClassLoader Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "phpunit/php-text-template",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
+        "name": "symfony/dependency-injection",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
+        "target-dir": "Symfony/Component/DependencyInjection",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-text-template.git",
-            "reference": "1eeef106193d2f8c539728e566bb4793071a9e18"
+            "url": "https://github.com/symfony/DependencyInjection.git",
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/1eeef106193d2f8c539728e566bb4793071a9e18",
-            "reference": "1eeef106193d2f8c539728e566bb4793071a9e18",
+            "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2013-01-07 10:56:17",
+        "require-dev": {
+            "symfony/config": ">=2.2,<2.3-dev",
+            "symfony/yaml": ">=2.0,<3.0"
+        },
+        "suggest": {
+            "symfony/config": "2.2.*",
+            "symfony/yaml": "2.2.*"
+        },
+        "time": "2013-03-23 07:49:54",
         "type": "library",
-        "installation-source": "source",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.2-dev"
+            }
+        },
+        "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "Text/"
-            ]
+            "psr-0": {
+                "Symfony\\Component\\DependencyInjection\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Simple template engine.",
-        "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-        "keywords": [
-            "template"
-        ]
+        "description": "Symfony DependencyInjection Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "phpunit/phpunit-mock-objects",
-        "version": "1.2.x-dev",
-        "version_normalized": "1.2.9999999.9999999-dev",
+        "name": "symfony/serializer",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
+        "target-dir": "Symfony/Component/Serializer",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-            "reference": "d49b5683200b5db9b1c64cb06f52f50d147891c4"
+            "url": "https://github.com/symfony/Serializer.git",
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/d49b5683200b5db9b1c64cb06f52f50d147891c4",
-            "reference": "d49b5683200b5db9b1c64cb06f52f50d147891c4",
+            "url": "https://api.github.com/repos/symfony/Serializer/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "phpunit/php-text-template": ">=1.1.1@stable"
-        },
-        "suggest": {
-            "ext-soap": "*"
+            "php": ">=5.3.3"
         },
-        "time": "2013-02-05 07:46:41",
+        "time": "2013-03-06 21:43:23",
         "type": "library",
-        "installation-source": "source",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.2-dev"
+            }
+        },
+        "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "PHPUnit/"
-            ]
+            "psr-0": {
+                "Symfony\\Component\\Serializer\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Mock Object library for PHPUnit",
-        "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-        "keywords": [
-            "mock",
-            "xunit"
-        ]
+        "description": "Symfony Serializer Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "phpunit/php-timer",
-        "version": "1.0.x-dev",
-        "version_normalized": "1.0.9999999.9999999-dev",
+        "name": "symfony/translation",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
+        "target-dir": "Symfony/Component/Translation",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-timer.git",
-            "reference": "ecf7920b27003a9412b07dad79dbb5ad1249e6c3"
+            "url": "https://github.com/symfony/Translation.git",
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/ecf7920b27003a9412b07dad79dbb5ad1249e6c3",
-            "reference": "ecf7920b27003a9412b07dad79dbb5ad1249e6c3",
+            "url": "https://api.github.com/repos/symfony/Translation/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2013-01-30 06:08:51",
+        "require-dev": {
+            "symfony/config": ">=2.0,<2.3-dev",
+            "symfony/yaml": ">=2.2,<3.0"
+        },
+        "suggest": {
+            "symfony/config": "2.2.*",
+            "symfony/yaml": "2.2.*"
+        },
+        "time": "2013-04-01 08:06:05",
         "type": "library",
-        "installation-source": "source",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.2-dev"
+            }
+        },
+        "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "PHP/"
-            ]
+            "psr-0": {
+                "Symfony\\Component\\Translation\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Utility class for timing",
-        "homepage": "https://github.com/sebastianbergmann/php-timer/",
-        "keywords": [
-            "timer"
-        ]
+        "description": "Symfony Translation Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "phpunit/php-token-stream",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
+        "name": "symfony/validator",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
+        "target-dir": "Symfony/Component/Validator",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-            "reference": "c25dd88e1592e66dee2553c99ef244203d5a1b98"
+            "url": "https://github.com/symfony/Validator.git",
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c25dd88e1592e66dee2553c99ef244203d5a1b98",
-            "reference": "c25dd88e1592e66dee2553c99ef244203d5a1b98",
+            "url": "https://api.github.com/repos/symfony/Validator/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
-            "ext-tokenizer": "*",
-            "php": ">=5.3.3"
+            "php": ">=5.3.3",
+            "symfony/translation": ">=2.0,<3.0"
+        },
+        "require-dev": {
+            "symfony/config": ">=2.2,<2.3-dev",
+            "symfony/http-foundation": ">=2.1,<3.0",
+            "symfony/locale": ">=2.0,<3.0",
+            "symfony/yaml": ">=2.0,<3.0"
+        },
+        "suggest": {
+            "doctrine/common": "~2.2",
+            "symfony/config": "2.2.*",
+            "symfony/http-foundation": "2.2.*",
+            "symfony/locale": "2.2.*",
+            "symfony/yaml": "2.2.*"
         },
-        "time": "2013-01-07 10:56:35",
+        "time": "2013-04-01 08:06:05",
         "type": "library",
-        "installation-source": "source",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.2-dev"
+            }
+        },
+        "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "PHP/"
-            ]
+            "psr-0": {
+                "Symfony\\Component\\Validator\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Wrapper around PHP's tokenizer extension.",
-        "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+        "description": "Symfony Validator Component",
+        "homepage": "http://symfony.com"
+    },
+    {
+        "name": "guzzle/common",
+        "version": "v3.1.2",
+        "version_normalized": "3.1.2.0",
+        "target-dir": "Guzzle/Common",
+        "source": {
+            "type": "git",
+            "url": "git://github.com/guzzle/common.git",
+            "reference": "v3.1.2"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/guzzle/common/archive/v3.1.2.zip",
+            "reference": "v3.1.2",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.2",
+            "symfony/event-dispatcher": ">=2.1"
+        },
+        "time": "2013-01-28 00:07:40",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "3.0-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Guzzle\\Common": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "description": "Common libraries used by Guzzle",
+        "homepage": "http://guzzlephp.org/",
         "keywords": [
-            "tokenizer"
+            "collection",
+            "common",
+            "event",
+            "exception"
         ]
     },
     {
-        "name": "phpunit/php-file-iterator",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
+        "name": "guzzle/stream",
+        "version": "v3.1.2",
+        "version_normalized": "3.1.2.0",
+        "target-dir": "Guzzle/Stream",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-            "reference": "2deb24c65ea78e126daa8d45b2089ddc29ec1d26"
+            "url": "https://github.com/guzzle/stream",
+            "reference": "v3.0.7"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2deb24c65ea78e126daa8d45b2089ddc29ec1d26",
-            "reference": "2deb24c65ea78e126daa8d45b2089ddc29ec1d26",
+            "url": "https://github.com/guzzle/stream/archive/v3.0.7.zip",
+            "reference": "v3.0.7",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "guzzle/common": "self.version",
+            "php": ">=5.3.2"
         },
-        "time": "2013-01-07 10:47:05",
+        "time": "2012-12-07 16:45:11",
         "type": "library",
-        "installation-source": "source",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "3.0-dev"
+            }
+        },
+        "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "File/"
-            ]
+            "psr-0": {
+                "Guzzle\\Stream": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
+                "name": "Michael Dowling",
+                "email": "mtdowling@gmail.com",
+                "homepage": "https://github.com/mtdowling"
             }
         ],
-        "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-        "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+        "description": "Guzzle stream wrapper component",
+        "homepage": "http://guzzlephp.org/",
         "keywords": [
-            "filesystem",
-            "iterator"
+            "Guzzle",
+            "component",
+            "stream"
         ]
     },
     {
-        "name": "phpunit/php-code-coverage",
-        "version": "1.2.x-dev",
-        "version_normalized": "1.2.9999999.9999999-dev",
+        "name": "guzzle/parser",
+        "version": "v3.1.2",
+        "version_normalized": "3.1.2.0",
+        "target-dir": "Guzzle/Parser",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-            "reference": "1.2.9"
+            "url": "git://github.com/guzzle/parser.git",
+            "reference": "v3.1.2"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.9",
-            "reference": "1.2.9",
+            "url": "https://github.com/guzzle/parser/archive/v3.1.2.zip",
+            "reference": "v3.1.2",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "phpunit/php-file-iterator": ">=1.3.0@stable",
-            "phpunit/php-text-template": ">=1.1.1@stable",
-            "phpunit/php-token-stream": ">=1.1.3@stable"
-        },
-        "suggest": {
-            "ext-dom": "*",
-            "ext-xdebug": ">=2.0.5"
+            "php": ">=5.3.2"
         },
-        "time": "2013-02-26 18:55:56",
+        "time": "2013-01-12 21:43:21",
         "type": "library",
-        "installation-source": "source",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "3.0-dev"
+            }
+        },
+        "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "PHP/"
-            ]
+            "psr-0": {
+                "Guzzle\\Parser": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
         "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
-            }
+            "MIT"
         ],
-        "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-        "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+        "description": "Interchangeable parsers used by Guzzle",
+        "homepage": "http://guzzlephp.org/",
         "keywords": [
-            "coverage",
-            "testing",
-            "xunit"
+            "URI Template",
+            "cookie",
+            "http",
+            "message",
+            "url"
         ]
     },
     {
-        "name": "phpunit/phpunit",
-        "version": "3.7.15",
-        "version_normalized": "3.7.15.0",
+        "name": "guzzle/http",
+        "version": "v3.1.2",
+        "version_normalized": "3.1.2.0",
+        "target-dir": "Guzzle/Http",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/phpunit.git",
-            "reference": "3.7.15"
+            "url": "git://github.com/guzzle/http.git",
+            "reference": "v3.1.2"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.15",
-            "reference": "3.7.15",
+            "url": "https://github.com/guzzle/http/archive/v3.1.2.zip",
+            "reference": "v3.1.2",
             "shasum": ""
         },
         "require": {
-            "ext-dom": "*",
-            "ext-pcre": "*",
-            "ext-reflection": "*",
-            "ext-spl": "*",
-            "php": ">=5.3.3",
-            "phpunit/php-code-coverage": ">=1.2.1,<1.3.0",
-            "phpunit/php-file-iterator": ">=1.3.1",
-            "phpunit/php-text-template": ">=1.1.1",
-            "phpunit/php-timer": ">=1.0.2,<1.1.0",
-            "phpunit/phpunit-mock-objects": ">=1.2.0,<1.3.0",
-            "symfony/yaml": ">=2.2.0"
-        },
-        "require-dev": {
-            "pear-pear/pear": "1.9.4"
+            "guzzle/common": "self.version",
+            "guzzle/parser": "self.version",
+            "guzzle/stream": "self.version",
+            "php": ">=5.3.2"
         },
         "suggest": {
-            "ext-json": "*",
-            "ext-simplexml": "*",
-            "ext-tokenizer": "*",
-            "phpunit/php-invoker": ">=1.1.0,<1.2.0"
+            "ext-curl": "*"
         },
-        "time": "2013-03-01 11:55:06",
-        "bin": [
-            "composer/bin/phpunit"
-        ],
+        "time": "2013-01-26 08:20:43",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "3.7.x-dev"
+                "dev-master": "3.0-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "PHPUnit/"
-            ]
+            "psr-0": {
+                "Guzzle\\Http": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            "",
-            "../../symfony/yaml/"
-        ],
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de",
-                "role": "lead"
+                "name": "Michael Dowling",
+                "email": "mtdowling@gmail.com",
+                "homepage": "https://github.com/mtdowling"
             }
         ],
-        "description": "The PHP Unit Testing framework.",
-        "homepage": "http://www.phpunit.de/",
+        "description": "HTTP libraries used by Guzzle",
+        "homepage": "http://guzzlephp.org/",
         "keywords": [
-            "phpunit",
-            "testing",
-            "xunit"
+            "Guzzle",
+            "client",
+            "curl",
+            "http",
+            "http client"
         ]
     },
     {
-        "name": "symfony/class-loader",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
-        "target-dir": "Symfony/Component/ClassLoader",
+        "name": "symfony/process",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
+        "target-dir": "Symfony/Component/Process",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/ClassLoader.git",
-            "reference": "v2.2.0"
+            "url": "https://github.com/symfony/Process.git",
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/v2.2.0",
-            "reference": "v2.2.0",
+            "url": "https://api.github.com/repos/symfony/Process/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "require-dev": {
-            "symfony/finder": ">=2.0,<3.0"
-        },
-        "time": "2013-03-01 06:43:14",
+        "time": "2013-03-23 07:49:54",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1063,7 +966,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\ClassLoader\\": ""
+                "Symfony\\Component\\Process\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1080,48 +983,62 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony ClassLoader Component",
+        "description": "Symfony Process Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/translation",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "target-dir": "Symfony/Component/Translation",
+        "name": "kriswallsmith/assetic",
+        "version": "v1.1.0-alpha4",
+        "version_normalized": "1.1.0.0-alpha4",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Translation.git",
-            "reference": "10164d84c407fd9ac5918172f86a4b94bf2b9c0b"
+            "url": "https://github.com/kriswallsmith/assetic.git",
+            "reference": "v1.1.0-alpha4"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Translation/zipball/10164d84c407fd9ac5918172f86a4b94bf2b9c0b",
-            "reference": "10164d84c407fd9ac5918172f86a4b94bf2b9c0b",
+            "url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/v1.1.0-alpha4",
+            "reference": "v1.1.0-alpha4",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "php": ">=5.3.1",
+            "symfony/process": ">=2.1.0,<2.3-dev"
         },
         "require-dev": {
-            "symfony/config": ">=2.0,<2.4-dev",
-            "symfony/yaml": ">=2.2,<3.0"
+            "cssmin/cssmin": "*",
+            "joliclic/javascript-packer": "*",
+            "kamicane/packager": "*",
+            "leafo/lessphp": "*",
+            "leafo/scssphp": "*",
+            "leafo/scssphp-compass": "*",
+            "mrclay/minify": "*",
+            "phpunit/phpunit": "3.7.*",
+            "ptachoire/cssembed": "*",
+            "twig/twig": ">=1.6.0,<2.0"
         },
         "suggest": {
-            "symfony/config": "2.2.*",
-            "symfony/yaml": "2.2.*"
+            "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
+            "leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
+            "leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin",
+            "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
+            "twig/twig": "Assetic provides the integration with the Twig templating engine"
         },
-        "time": "2013-02-11 10:13:11",
+        "time": "2013-02-24 17:22:20",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3-dev"
+                "dev-master": "1.1-dev"
             }
         },
-        "installation-source": "source",
+        "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Translation\\": ""
-            }
+                "Assetic": "src/"
+            },
+            "files": [
+                "src/functions.php"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
@@ -1129,51 +1046,39 @@
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Kris Wallsmith",
+                "email": "kris.wallsmith@gmail.com",
+                "homepage": "http://kriswallsmith.net/"
             }
         ],
-        "description": "Symfony Translation Component",
-        "homepage": "http://symfony.com"
+        "description": "Asset Management for PHP",
+        "homepage": "https://github.com/kriswallsmith/assetic",
+        "keywords": [
+            "assets",
+            "compression",
+            "minification"
+        ]
     },
     {
-        "name": "symfony/validator",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
-        "target-dir": "Symfony/Component/Validator",
+        "name": "symfony/yaml",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
+        "target-dir": "Symfony/Component/Yaml",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Validator.git",
-            "reference": "v2.2.0"
+            "url": "https://github.com/symfony/Yaml.git",
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Validator/zipball/v2.2.0",
-            "reference": "v2.2.0",
+            "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "symfony/translation": ">=2.0,<3.0"
-        },
-        "require-dev": {
-            "symfony/config": ">=2.2,<2.3-dev",
-            "symfony/http-foundation": ">=2.1,<3.0",
-            "symfony/locale": ">=2.0,<3.0",
-            "symfony/yaml": ">=2.0,<3.0"
-        },
-        "suggest": {
-            "doctrine/common": "~2.2",
-            "symfony/config": "2.2.*",
-            "symfony/http-foundation": "2.2.*",
-            "symfony/locale": "2.2.*",
-            "symfony/yaml": "2.2.*"
+            "php": ">=5.3.3"
         },
-        "time": "2013-02-28 14:29:34",
+        "time": "2013-03-23 07:49:54",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1183,7 +1088,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Validator\\": ""
+                "Symfony\\Component\\Yaml\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1200,293 +1105,413 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony Validator Component",
+        "description": "Symfony Yaml Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/serializer",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
-        "target-dir": "Symfony/Component/Serializer",
+        "name": "phpunit/php-text-template",
+        "version": "1.1.4",
+        "version_normalized": "1.1.4.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Serializer.git",
-            "reference": "v2.2.0-RC3"
+            "url": "git://github.com/sebastianbergmann/php-text-template.git",
+            "reference": "1.1.4"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Serializer/zipball/v2.2.0-RC3",
-            "reference": "v2.2.0-RC3",
+            "url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4",
+            "reference": "1.1.4",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2013-01-19 07:50:02",
+        "time": "2012-10-31 11:15:28",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.2-dev"
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                "Text/"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "include-path": [
+            ""
+        ],
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "authors": [
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
             }
+        ],
+        "description": "Simple template engine.",
+        "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+        "keywords": [
+            "template"
+        ]
+    },
+    {
+        "name": "phpunit/phpunit-mock-objects",
+        "version": "1.2.3",
+        "version_normalized": "1.2.3.0",
+        "source": {
+            "type": "git",
+            "url": "git://github.com/sebastianbergmann/phpunit-mock-objects.git",
+            "reference": "1.2.3"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/sebastianbergmann/phpunit-mock-objects/archive/1.2.3.zip",
+            "reference": "1.2.3",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3",
+            "phpunit/php-text-template": ">=1.1.1@stable"
         },
+        "suggest": {
+            "ext-soap": "*"
+        },
+        "time": "2013-01-13 10:24:48",
+        "type": "library",
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\Serializer\\": ""
+            "classmap": [
+                "PHPUnit/"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "include-path": [
+            ""
+        ],
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "authors": [
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
             }
+        ],
+        "description": "Mock Object library for PHPUnit",
+        "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+        "keywords": [
+            "mock",
+            "xunit"
+        ]
+    },
+    {
+        "name": "phpunit/php-timer",
+        "version": "1.0.4",
+        "version_normalized": "1.0.4.0",
+        "source": {
+            "type": "git",
+            "url": "git://github.com/sebastianbergmann/php-timer.git",
+            "reference": "1.0.4"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/sebastianbergmann/php-timer/zipball/1.0.4",
+            "reference": "1.0.4",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "time": "2012-10-11 04:45:58",
+        "type": "library",
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                "PHP/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
+        "include-path": [
+            ""
+        ],
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
             }
         ],
-        "description": "Symfony Serializer Component",
-        "homepage": "http://symfony.com"
+        "description": "Utility class for timing",
+        "homepage": "http://www.phpunit.de/",
+        "keywords": [
+            "timer"
+        ]
     },
     {
-        "name": "symfony/dependency-injection",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
-        "target-dir": "Symfony/Component/DependencyInjection",
+        "name": "phpunit/php-token-stream",
+        "version": "1.1.5",
+        "version_normalized": "1.1.5.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/DependencyInjection.git",
-            "reference": "v2.2.0-RC3"
+            "url": "git://github.com/sebastianbergmann/php-token-stream.git",
+            "reference": "1.1.5"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/v2.2.0-RC3",
-            "reference": "v2.2.0-RC3",
+            "url": "https://github.com/sebastianbergmann/php-token-stream/zipball/1.1.5",
+            "reference": "1.1.5",
             "shasum": ""
         },
         "require": {
+            "ext-tokenizer": "*",
             "php": ">=5.3.3"
         },
-        "require-dev": {
-            "symfony/config": ">=2.2,<2.3-dev",
-            "symfony/yaml": ">=2.0,<3.0"
-        },
-        "suggest": {
-            "symfony/config": "2.2.*",
-            "symfony/yaml": "2.2.*"
-        },
-        "time": "2013-02-11 11:43:49",
+        "time": "2012-10-11 04:47:14",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.2-dev"
-            }
-        },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\DependencyInjection\\": ""
-            }
+            "classmap": [
+                "PHP/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
+        "include-path": [
+            ""
+        ],
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
             }
         ],
-        "description": "Symfony DependencyInjection Component",
-        "homepage": "http://symfony.com"
+        "description": "Wrapper around PHP's tokenizer extension.",
+        "homepage": "http://www.phpunit.de/",
+        "keywords": [
+            "tokenizer"
+        ]
     },
     {
-        "name": "guzzle/common",
-        "version": "v3.1.0",
-        "version_normalized": "3.1.0.0",
-        "target-dir": "Guzzle/Common",
+        "name": "phpunit/php-file-iterator",
+        "version": "1.3.3",
+        "version_normalized": "1.3.3.0",
         "source": {
             "type": "git",
-            "url": "git://github.com/guzzle/common.git",
-            "reference": "v3.1.0"
+            "url": "git://github.com/sebastianbergmann/php-file-iterator.git",
+            "reference": "1.3.3"
         },
         "dist": {
             "type": "zip",
-            "url": "https://github.com/guzzle/common/archive/v3.1.0.zip",
-            "reference": "v3.1.0",
+            "url": "https://github.com/sebastianbergmann/php-file-iterator/zipball/1.3.3",
+            "reference": "1.3.3",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.2",
-            "symfony/event-dispatcher": ">=2.1"
+            "php": ">=5.3.3"
         },
-        "time": "2013-01-13 05:14:34",
+        "time": "2012-10-11 04:44:38",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "3.0-dev"
-            }
-        },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Guzzle\\Common": ""
-            }
+            "classmap": [
+                "File/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
+        "include-path": [
+            ""
+        ],
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
-        "description": "Common libraries used by Guzzle",
-        "homepage": "http://guzzlephp.org/",
+        "authors": [
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
+            }
+        ],
+        "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+        "homepage": "http://www.phpunit.de/",
         "keywords": [
-            "collection",
-            "common",
-            "event",
-            "exception"
+            "filesystem",
+            "iterator"
         ]
     },
     {
-        "name": "guzzle/stream",
-        "version": "v3.1.0",
-        "version_normalized": "3.1.0.0",
-        "target-dir": "Guzzle/Stream",
+        "name": "phpunit/php-code-coverage",
+        "version": "1.2.9",
+        "version_normalized": "1.2.9.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/guzzle/stream",
-            "reference": "v3.1.0"
+            "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+            "reference": "1.2.9"
         },
         "dist": {
             "type": "zip",
-            "url": "https://github.com/guzzle/stream/archive/v3.1.0.zip",
-            "reference": "v3.1.0",
+            "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.9",
+            "reference": "1.2.9",
             "shasum": ""
         },
         "require": {
-            "guzzle/common": "self.version",
-            "php": ">=5.3.2"
+            "php": ">=5.3.3",
+            "phpunit/php-file-iterator": ">=1.3.0@stable",
+            "phpunit/php-text-template": ">=1.1.1@stable",
+            "phpunit/php-token-stream": ">=1.1.3@stable"
         },
-        "time": "2012-12-07 16:45:11",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "3.0-dev"
-            }
+        "suggest": {
+            "ext-dom": "*",
+            "ext-xdebug": ">=2.0.5"
         },
+        "time": "2013-02-26 18:55:56",
+        "type": "library",
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Guzzle\\Stream": ""
-            }
+            "classmap": [
+                "PHP/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
+        "include-path": [
+            ""
+        ],
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
             }
         ],
-        "description": "Guzzle stream wrapper component",
-        "homepage": "http://guzzlephp.org/",
+        "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+        "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
         "keywords": [
-            "Guzzle",
-            "component",
-            "stream"
+            "coverage",
+            "testing",
+            "xunit"
         ]
     },
     {
-        "name": "guzzle/parser",
-        "version": "v3.1.0",
-        "version_normalized": "3.1.0.0",
-        "target-dir": "Guzzle/Parser",
+        "name": "phpunit/phpunit",
+        "version": "3.7.19",
+        "version_normalized": "3.7.19.0",
         "source": {
             "type": "git",
-            "url": "git://github.com/guzzle/parser.git",
-            "reference": "v3.1.0"
+            "url": "https://github.com/sebastianbergmann/phpunit.git",
+            "reference": "3.7.19"
         },
         "dist": {
             "type": "zip",
-            "url": "https://github.com/guzzle/parser/archive/v3.1.0.zip",
-            "reference": "v3.1.0",
+            "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.19",
+            "reference": "3.7.19",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.2"
+            "ext-dom": "*",
+            "ext-pcre": "*",
+            "ext-reflection": "*",
+            "ext-spl": "*",
+            "php": ">=5.3.3",
+            "phpunit/php-code-coverage": ">=1.2.1,<1.3.0",
+            "phpunit/php-file-iterator": ">=1.3.1",
+            "phpunit/php-text-template": ">=1.1.1",
+            "phpunit/php-timer": ">=1.0.2,<1.1.0",
+            "phpunit/phpunit-mock-objects": ">=1.2.0,<1.3.0",
+            "symfony/yaml": ">=2.0.0,<2.3.0"
         },
-        "time": "2013-01-12 21:43:21",
+        "require-dev": {
+            "pear-pear/pear": "1.9.4"
+        },
+        "suggest": {
+            "ext-json": "*",
+            "ext-simplexml": "*",
+            "ext-tokenizer": "*",
+            "phpunit/php-invoker": ">=1.1.0,<1.2.0"
+        },
+        "time": "2013-03-25 11:45:06",
+        "bin": [
+            "composer/bin/phpunit"
+        ],
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "3.0-dev"
+                "dev-master": "3.7.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Guzzle\\Parser": ""
-            }
+            "classmap": [
+                "PHPUnit/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
+        "include-path": [
+            "",
+            "../../symfony/yaml/"
+        ],
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
-        "description": "Interchangeable parsers used by Guzzle",
-        "homepage": "http://guzzlephp.org/",
+        "authors": [
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de",
+                "role": "lead"
+            }
+        ],
+        "description": "The PHP Unit Testing framework.",
+        "homepage": "http://www.phpunit.de/",
         "keywords": [
-            "URI Template",
-            "cookie",
-            "http",
-            "message",
-            "url"
+            "phpunit",
+            "testing",
+            "xunit"
         ]
     },
     {
-        "name": "guzzle/http",
-        "version": "v3.1.0",
-        "version_normalized": "3.1.0.0",
-        "target-dir": "Guzzle/Http",
+        "name": "symfony-cmf/routing",
+        "version": "1.1.0-alpha1",
+        "version_normalized": "1.1.0.0-alpha1",
+        "target-dir": "Symfony/Cmf/Component/Routing",
         "source": {
             "type": "git",
-            "url": "git://github.com/guzzle/http.git",
-            "reference": "v3.1.0"
+            "url": "https://github.com/symfony-cmf/Routing.git",
+            "reference": "1.1.0-alpha1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://github.com/guzzle/http/archive/v3.1.0.zip",
-            "reference": "v3.1.0",
+            "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/1.1.0-alpha1",
+            "reference": "1.1.0-alpha1",
             "shasum": ""
         },
         "require": {
-            "ext-curl": "*",
-            "guzzle/common": "self.version",
-            "guzzle/parser": "self.version",
-            "guzzle/stream": "self.version",
-            "php": ">=5.3.2"
+            "php": ">=5.3.2",
+            "psr/log": ">=1.0,<2.0",
+            "symfony/http-kernel": ">=2.2,<2.3-dev",
+            "symfony/routing": ">=2.2,<2.3-dev"
+        },
+        "suggest": {
+            "symfony/http-foundation": "ChainRouter/DynamicRouter have optional support for Request instances, several enhancers require a Request instances, >=2.2,<2.3-dev"
         },
-        "time": "2013-01-13 05:09:32",
+        "time": "2013-05-07 06:30:59",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "3.0-dev"
+                "dev-master": "1.1-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Guzzle\\Http": ""
+                "Symfony\\Cmf\\Component\\Routing": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1495,19 +1520,15 @@
         ],
         "authors": [
             {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
+                "name": "Symfony CMF Community",
+                "homepage": "https://github.com/symfony-cmf/Routing/contributors"
             }
         ],
-        "description": "HTTP libraries used by Guzzle",
-        "homepage": "http://guzzlephp.org/",
+        "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers",
+        "homepage": "http://cmf.symfony.com",
         "keywords": [
-            "Guzzle",
-            "client",
-            "curl",
-            "http",
-            "http client"
+            "database",
+            "routing"
         ]
     }
 ]
diff --git a/core/vendor/guzzle/common/Guzzle/Common/Collection.php b/core/vendor/guzzle/common/Guzzle/Common/Collection.php
index d0857b2cc7f9..66505802a33f 100644
--- a/core/vendor/guzzle/common/Guzzle/Common/Collection.php
+++ b/core/vendor/guzzle/common/Guzzle/Common/Collection.php
@@ -365,26 +365,78 @@ public function inject($input)
 
     /**
      * Gets a value from the collection using an array path (e.g. foo/baz/bar would retrieve bar from two nested arrays)
+     * Allows for wildcard searches which recursively combine matches up to the level at which the wildcard occurs. This
+     * can be useful for accepting any key of a sub-array and combining matching keys from each diverging path.
      *
      * @param string $path      Path to traverse and retrieve a value from
      * @param string $separator Character used to add depth to the search
+     * @param mixed  $data      Optional data to descend into (used when wildcards are encountered)
      *
      * @return mixed|null
      */
-    public function getPath($path, $separator = '/')
+    public function getPath($path, $separator = '/', $data = null)
     {
-        $parts = explode($separator, $path);
-        $data = &$this->data;
+        // Assume the data of the collection if no data was passed into the method
+        if ($data === null) {
+            $data = &$this->data;
+        }
+
+        // Break the path into an array if needed
+        if (!is_array($path)) {
+            $path = explode($separator, $path);
+        }
 
         // Using an iterative approach rather than recursion for speed
-        while (null !== ($part = array_shift($parts))) {
-            // Return null if this path doesn't exist or if there's more depth and the value is not an array
-            if (!isset($data[$part]) || ($parts && !is_array($data[$part]))) {
+        while (null !== ($part = array_shift($path))) {
+
+            if (!is_array($data)) {
                 return null;
             }
+
+            // The value does not exist in the array or the path has more but the value is not an array
+            if (!isset($data[$part])) {
+
+                // Not using a wildcard and the key was not found, so return null
+                if ($part != '*') {
+                    return null;
+                }
+
+                // If using a wildcard search, then diverge and combine paths
+                $result = array();
+                foreach ($data as $value) {
+                    if (!$path) {
+                        $result = array_merge_recursive($result, (array) $value);
+                    } else {
+                        $test = $this->getPath($path, $separator, $value);
+                        if ($test !== null) {
+                            $result = array_merge_recursive($result, (array) $test);
+                        }
+                    }
+                }
+
+                return $result;
+            }
+
+            // Descend deeper into the data
             $data = &$data[$part];
         }
 
         return $data;
     }
+
+    /**
+     * Over write key value pairs in this collection with all of the data from an array or collection.
+     *
+     * @param array|\Traversable $data Values to override over this config
+     *
+     * @return self
+     */
+    public function overwriteWith($data)
+    {
+        foreach ($data as $k => $v) {
+            $this->set($k, $v);
+        }
+
+        return $this;
+    }
 }
diff --git a/core/vendor/guzzle/common/Guzzle/Common/Version.php b/core/vendor/guzzle/common/Guzzle/Common/Version.php
index 8fd9512943a5..9b8a827cc5c0 100644
--- a/core/vendor/guzzle/common/Guzzle/Common/Version.php
+++ b/core/vendor/guzzle/common/Guzzle/Common/Version.php
@@ -7,5 +7,5 @@
  */
 class Version
 {
-    const VERSION = '3.1.0';
+    const VERSION = '3.1.2';
 }
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Client.php b/core/vendor/guzzle/http/Guzzle/Http/Client.php
index d38ae144aa55..38b40e545adc 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Client.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Client.php
@@ -30,6 +30,11 @@ class Client extends AbstractHasDispatcher implements ClientInterface
      */
     protected $defaultHeaders;
 
+    /**
+     * @var string The user agent string to set on each request
+     */
+    protected $userAgent;
+
     /**
      * @var Collection Parameter object holding configuration data
      */
@@ -133,7 +138,7 @@ final public function setSslVerification($certificateAuthority = true, $verifyPe
         } elseif ($certificateAuthority === false) {
             unset($opts[CURLOPT_CAINFO]);
             $opts[CURLOPT_SSL_VERIFYPEER] = false;
-            $opts[CURLOPT_SSL_VERIFYHOST] = 1;
+            $opts[CURLOPT_SSL_VERIFYHOST] = 2;
         } elseif ($verifyPeer !== true && $verifyPeer !== false && $verifyPeer !== 1 && $verifyPeer !== 0) {
             throw new InvalidArgumentException('verifyPeer must be 1, 0 or boolean');
         } elseif ($verifyHost !== 0 && $verifyHost !== 1 && $verifyHost !== 2) {
@@ -240,6 +245,10 @@ public function createRequest($method = RequestInterface::GET, $uri = null, $hea
             $url = Url::factory($this->getBaseUrl())->combine($this->expandTemplate($uri, $templateVars));
         }
 
+        if ($this->userAgent) {
+            $this->defaultHeaders->set('User-Agent', $this->userAgent);
+        }
+
         // If default headers are provided, then merge them into existing headers
         // If a collision occurs, the header is completely replaced
         if (count($this->defaultHeaders)) {
@@ -283,7 +292,7 @@ public function setUserAgent($userAgent, $includeDefault = false)
         if ($includeDefault) {
             $userAgent .= ' ' . Utils::getDefaultUserAgent();
         }
-        $this->defaultHeaders->set('User-Agent', $userAgent);
+        $this->userAgent = $userAgent;
 
         return $this;
     }
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php b/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php
index 53cfbfcf0c25..3d14d56c02ab 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php
@@ -72,6 +72,13 @@ public static function factory(RequestInterface $request)
             CURLOPT_SSL_VERIFYHOST => 2
         );
 
+        // Add CURLOPT_ENCODING if Accept-Encoding header is provided
+        if ($acceptEncodingHeader = $request->getHeader('Accept-Encoding')) {
+            $curlOptions[CURLOPT_ENCODING] = (string) $acceptEncodingHeader;
+            // Let cURL set the Accept-Encoding header, prevents duplicate values
+            $request->removeHeader('Accept-Encoding');
+        }
+
         // Enable the progress function if the 'progress' param was set
         if ($requestCurlOptions->get('progress')) {
             $curlOptions[CURLOPT_PROGRESSFUNCTION] = array($mediator, 'progress');
diff --git a/core/vendor/guzzle/http/Guzzle/Http/QueryString.php b/core/vendor/guzzle/http/Guzzle/Http/QueryString.php
index 8f5c37bd9b87..25b4661122ca 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/QueryString.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/QueryString.php
@@ -220,6 +220,8 @@ public function isUrlEncoding()
     public function setAggregateFunction($callback)
     {
         $this->aggregator = $callback;
+
+        return $this;
     }
 
     /**
diff --git a/core/vendor/guzzle/http/Guzzle/Http/RedirectPlugin.php b/core/vendor/guzzle/http/Guzzle/Http/RedirectPlugin.php
index fb80f83bfade..de481767a788 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/RedirectPlugin.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/RedirectPlugin.php
@@ -78,8 +78,10 @@ public function onRequestSent(Event $event)
 
         // Send the redirect request and hijack the response of the original request
         $redirectResponse = $redirectRequest->send();
-        $redirectResponse->setPreviousResponse($event['response']);
         $request->setResponse($redirectResponse);
+        if (!$redirectResponse->getPreviousResponse()) {
+            $redirectResponse->setPreviousResponse($response);
+        }
     }
 
     /**
diff --git a/core/vendor/guzzle/http/Guzzle/Http/composer.json b/core/vendor/guzzle/http/Guzzle/Http/composer.json
index b82400367618..292cd83d18f9 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/composer.json
+++ b/core/vendor/guzzle/http/Guzzle/Http/composer.json
@@ -13,11 +13,13 @@
     ],
     "require": {
         "php": ">=5.3.2",
-        "ext-curl": "*",
         "guzzle/common": "self.version",
         "guzzle/parser": "self.version",
         "guzzle/stream": "self.version"
     },
+    "suggest": {
+        "ext-curl": "*"
+    },
     "autoload": {
         "psr-0": { "Guzzle\\Http": "" }
     },
diff --git a/core/vendor/kriswallsmith/assetic/.travis.yml b/core/vendor/kriswallsmith/assetic/.travis.yml
deleted file mode 100644
index a801b153c33c..000000000000
--- a/core/vendor/kriswallsmith/assetic/.travis.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-language: php
-
-php:
-    - 5.3
-    - 5.4
-
-before_script:
-    - wget http://getcomposer.org/composer.phar
-    - php composer.phar install --dev
-    - git clone https://github.com/kamicane/packager.git vendor/packager --quiet --depth 1
-    - git clone https://github.com/leafo/lessphp.git vendor/lessphp --quiet --depth 1
-    - git clone https://github.com/mrclay/minify.git vendor/minify --quiet --depth 1
-    - svn checkout http://cssmin.googlecode.com/svn/trunk/ vendor/cssmin --quiet
-    - wget --quiet -O javascript-packer.zip "http://joliclic.free.fr/php/javascript-packer/telechargement.php?id=2&action=telecharger" && mkdir -p vendor/packer && unzip -qq javascript-packer.zip -d vendor/packer; rm javascript-packer.zip
-
-script: phpunit --configuration phpunit.travis.xml
diff --git a/core/vendor/kriswallsmith/assetic/CHANGELOG-1.1.md b/core/vendor/kriswallsmith/assetic/CHANGELOG-1.1.md
old mode 100644
new mode 100755
index 4574403e50f9..960bca74a2b2
--- a/core/vendor/kriswallsmith/assetic/CHANGELOG-1.1.md
+++ b/core/vendor/kriswallsmith/assetic/CHANGELOG-1.1.md
@@ -1,3 +1,14 @@
+1.1.0
+-----
+
+ * Added the possibility to configure additional load paths for less and lessphp
+ * Added the UglifyCssFilter
+ * Fixed the handling of directories in the GlobAsset. #256
+ * Added Handlebars support
+ * Added Scssphp-compass support
+ * Added the CacheBustingWorker
+ * Added the UglifyJs2Filter
+
 1.1.0-alpha1 (August 28, 2012)
 ------------------------------
 
diff --git a/core/vendor/kriswallsmith/assetic/LICENSE b/core/vendor/kriswallsmith/assetic/LICENSE
index 1060e5b03aa3..50b8e219541c 100644
--- a/core/vendor/kriswallsmith/assetic/LICENSE
+++ b/core/vendor/kriswallsmith/assetic/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2010-2012 OpenSky Project Inc
+Copyright (c) 2010-2013 OpenSky Project Inc
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/kriswallsmith/assetic/README.md b/core/vendor/kriswallsmith/assetic/README.md
index e12e34195602..c9308c05dcb6 100644
--- a/core/vendor/kriswallsmith/assetic/README.md
+++ b/core/vendor/kriswallsmith/assetic/README.md
@@ -1,4 +1,4 @@
-# Assetic ![project status](http://stillmaintained.com/kriswallsmith/assetic.png) #
+# Assetic [![Build Status](https://travis-ci.org/kriswallsmith/assetic.png?branch=master)](https://travis-ci.org/kriswallsmith/assetic) ![project status](http://stillmaintained.com/kriswallsmith/assetic.png) #
 
 Assetic is an asset management framework for PHP.
 
@@ -73,24 +73,36 @@ foreach ($css as $leaf) {
 The core provides the following filters in the `Assetic\Filter` namespace:
 
  * `CoffeeScriptFilter`: compiles CoffeeScript into Javascript
+ * `CompassFilter`: Compass CSS authoring framework
  * `CssEmbedFilter`: embeds image data in your stylesheets
  * `CssImportFilter`: inlines imported stylesheets
  * `CssMinFilter`: minifies CSS
  * `CssRewriteFilter`: fixes relative URLs in CSS assets when moving to a new URL
+ * `DartFilter`: compiles Javascript using dart2js
  * `GoogleClosure\CompilerApiFilter`: compiles Javascript using the Google Closure Compiler API
  * `GoogleClosure\CompilerJarFilter`: compiles Javascript using the Google Closure Compiler JAR
+ * `GssFilter`: compliles CSS using the Google Closure Stylesheets Compiler
+ * `HandlebarsFilter`: compiles Handlebars templates into Javascript
  * `JpegoptimFilter`: optimize your JPEGs
  * `JpegtranFilter`: optimize your JPEGs
+ * `JSMinFilter`: minifies Javascript
+ * `JSMinPlusFilter`: minifies Javascript
  * `LessFilter`: parses LESS into CSS (using less.js with node.js)
  * `LessphpFilter`: parses LESS into CSS (using lessphp)
  * `OptiPngFilter`: optimize your PNGs
+ * `PackagerFilter`: parses Javascript for packager tags
  * `PackerFilter`: compresses Javascript using Dean Edwards's Packer
+ * `PhpCssEmbedFilter`: embeds image data in your stylesheet
  * `PngoutFilter`: optimize your PNGs
- * `CompassFilter`: Compass CSS authoring framework
  * `Sass\SassFilter`: parses SASS into CSS
  * `Sass\ScssFilter`: parses SCSS into CSS
+ * `ScssphpFilter`: parses SCSS using scssphp
  * `SprocketsFilter`: Sprockets Javascript dependency management
  * `StylusFilter`: parses STYL into CSS
+ * `TypeScriptFilter`: parses TypeScript into Javascript
+ * `UglifyCssFilter`: minifies CSS
+ * `UglifyJs2Filter`: minifies Javascript
+ * `UglifyJsFilter`: minifies Javascript
  * `Yui\CssCompressorFilter`: compresses CSS using the YUI compressor
  * `Yui\JsCompressorFilter`: compresses Javascript using the YUI compressor
 
@@ -198,6 +210,36 @@ $js->dump();
 $js->dump();
 ```
 
+Cache Busting
+-------------
+
+You can use the CacheBustingWorker to provide unique names.
+
+Two strategies are provided: CacheBustingWorker::STRATEGY_CONTENT (content based), CacheBustingWorker::STRATEGY_MODIFICATION (modification time based)
+
+``` php
+<?php
+
+use Assetic\Factory\AssetFactory;
+use Assetic\Factory\Worker\CacheBustingWorker;
+
+$factory = new AssetFactory('/path/to/asset/directory/');
+$factory->setAssetManager($am);
+$factory->setFilterManager($fm);
+$factory->setDebug(true);
+$factory->addWorker(new CacheBustingWorker(CacheBustingWorker::STRATEGY_CONTENT));
+
+$css = $factory->createAsset(array(
+    '@reset',         // load the asset manager's "reset" asset
+    'css/src/*.scss', // load every scss files from "/path/to/asset/directory/css/src/"
+), array(
+    'scss',           // filter through the filter manager's "scss" filter
+    '?yui_css',       // don't use this filter in debug mode
+));
+
+echo $css->dump();
+```
+
 Static Assets
 -------------
 
diff --git a/core/vendor/kriswallsmith/assetic/composer.json b/core/vendor/kriswallsmith/assetic/composer.json
index dec9cbd271d7..7e15e91f39e2 100644
--- a/core/vendor/kriswallsmith/assetic/composer.json
+++ b/core/vendor/kriswallsmith/assetic/composer.json
@@ -2,7 +2,7 @@
     "name": "kriswallsmith/assetic",
     "minimum-stability": "dev",
     "description": "Asset Management for PHP",
-    "keywords": ["assets", "compression", "minification"],
+    "keywords": [ "assets", "compression", "minification" ],
     "homepage": "https://github.com/kriswallsmith/assetic",
     "type": "library",
     "license": "MIT",
@@ -15,27 +15,77 @@
     ],
     "require": {
         "php": ">=5.3.1",
-        "symfony/process": "2.1.*"
+        "symfony/process": ">=2.1.0,<2.3-dev"
     },
     "require-dev": {
+        "phpunit/phpunit": "3.7.*",
         "twig/twig": ">=1.6.0,<2.0",
         "leafo/lessphp": "*",
         "leafo/scssphp": "*",
-        "ptachoire/cssembed": "*"
+        "ptachoire/cssembed": "*",
+        "leafo/scssphp-compass": "*",
+
+        "cssmin/cssmin": "*",
+        "mrclay/minify": "*",
+        "kamicane/packager": "*",
+        "joliclic/javascript-packer": "*"
     },
     "minimum-stability": "dev",
     "suggest": {
         "twig/twig": "Assetic provides the integration with the Twig templating engine",
         "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
         "leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
-        "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris"
+        "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
+        "leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin"
     },
     "autoload": {
-        "psr-0": { "Assetic": "src/" }
+        "psr-0": { "Assetic": "src/" },
+        "files": [ "src/functions.php" ]
+    },
+    "config": {
+        "bin-dir": "bin"
     },
     "extra": {
         "branch-alias": {
             "dev-master": "1.1-dev"
         }
-    }
+    },
+    "repositories": [
+        {
+            "type": "package",
+            "package": {
+                "name": "cssmin/cssmin",
+                "version": "3.0.1",
+                "dist": { "url": "http://cssmin.googlecode.com/files/cssmin-v3.0.1.php", "type": "file" },
+                "autoload": { "classmap": [ "cssmin-v3.0.1.php" ] }
+            }
+        },
+        {
+            "type": "package",
+            "package": {
+                "name": "mrclay/minify",
+                "version": "2.1.5",
+                "dist": { "url": "http://minify.googlecode.com/files/minify-2.1.5.zip", "type": "zip" },
+                "autoload": { "classmap": [ "min/lib/" ] }
+            }
+        },
+        {
+            "type": "package",
+            "package": {
+                "name": "kamicane/packager",
+                "version": "1.0",
+                "dist": { "url": "https://github.com/kamicane/packager/archive/1.0.zip", "type": "zip" },
+                "autoload": { "classmap": [ "." ] }
+            }
+        },
+        {
+            "type": "package",
+            "package": {
+                "name": "joliclic/javascript-packer",
+                "version": "1.1",
+                "dist": { "url": "http://joliclic.free.fr/php/javascript-packer/telechargement.php?id=2&action=telecharger", "type": "zip" },
+                "autoload": { "classmap": [ "class.JavaScriptPacker.php" ] }
+            }
+        }
+    ]
 }
diff --git a/core/vendor/kriswallsmith/assetic/docs/en/build.md b/core/vendor/kriswallsmith/assetic/docs/en/build.md
deleted file mode 100644
index d560172cb773..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/en/build.md
+++ /dev/null
@@ -1,32 +0,0 @@
-Building and Dumping Assets
----------------------------
-
-The is the simplest approach to using Assetic. It involves two steps:
-
- 1. Create a PHP script in your web directory that uses the Assetic OOP API to
-    create and output an asset.
- 2. Reference that file from your template.
-
-For example, you could create a file in your web directory at
-`assets/javascripts.php` with the following code:
-
-    use Assetic\Asset\AssetCollection;
-    use Assetic\Asset\FileAsset;
-    use Assetic\Filter\Yui\JsCompressorFilter as YuiCompressorFilter;
-
-    $js = new AssetCollection(array(
-        new FileAsset(__DIR__.'/jquery.js'),
-        new FileAsset(__DIR__.'/application.js'),
-    ), array(
-        new YuiCompressorFilter('/path/to/yuicompressor.jar'),
-    ));
-
-    header('Content-Type: application/js');
-    echo $js->dump();
-
-In your HTML template you would include this generated Javascript using a
-simple `<script>` tag:
-
-    <script src="/assets/javascripts.php"></script>
-
-Next: [Basic Concepts](concepts.md)
diff --git a/core/vendor/kriswallsmith/assetic/docs/en/concepts.md b/core/vendor/kriswallsmith/assetic/docs/en/concepts.md
deleted file mode 100644
index 7af7b1f2f6a3..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/en/concepts.md
+++ /dev/null
@@ -1,129 +0,0 @@
-In order to use the Assetic OOP API you must first understand the two central
-concepts of Assetic: assets and filters.
-
-### What is an Asset?
-
-As asset is an object that has content and metadata which can be loaded and
-dumped. Your assets will probably fall into three categories: Javascripts,
-stylesheets and images. Most assets will be loaded from files in your
-filesystem, but they can also be loaded via HTTP, a database, from a string,
-or virtually anything else. All that an asset has to do is fulfill Assetic's
-basic asset interface.
-
-### What is a Filter?
-
-A filter is an object that acts upon an asset's content when that asset is
-loaded and/or dumped. Similar to assets, a filter can do virtually anything,
-as long as it implements Assetic's filter interface. 
-
-Here is a list of some of the tools that can be applied to assets using a
-filter:
-
- * CoffeeScript
- * CssEmbed
- * CssMin
- * Google Closure Compiler
- * jpegoptim
- * jpegtran
- * Less
- * LessPHP
- * optipng
- * Packager
- * pngout
- * SASS
- * Sprockets (version 1)
- * Stylus
- * YUI Compressor
-
-### Using Assets and Filters
-
-You need to start by creating an asset object. This will probably mean
-instantiating a `FileAsset` instance, which takes a filesystem path as its
-first argument:
-
-    $asset = new Assetic\Asset\FileAsset('/path/to/main.css');
-
-Once you have an asset you can begin adding filters to it by calling
-`ensureFilter()`. For example, you can add a filter that applies the YUI
-Compressor to the contents of the asset:
-
-    $yui = new Assetic\Filter\Yui\CssCompressorFilter('/path/to/yui.jar');
-    $asset->ensureFilter($yui);
-
-Once you've added as many filters as you'd like you can output the finished
-asset to the browser:
-
-    header('Content-Type: text/css');
-    echo $asset->dump();
-
-### Asset Collections
-
-It is a good idea to combine assets of the same type into a single file to
-avoid unnecessary HTTP requests. You can do this in Assetic using the
-`AssetCollection` class. This class is just like any other asset in Assetic's
-eyes as it implements the asset interface, but under the hood it allows you to
-combine multiple assets into one.
-
-    use Assetic\Asset\AssetCollection;
-
-    $asset = new AssetCollection(array(
-        new FileAsset('/path/to/js/jquery.js'),
-        new FileAsset('/path/to/js/jquery.plugin.js'),
-        new FileAsset('/path/to/js/application.js'),
-    ));
-
-### Nested Asset Collections
-
-The collection class implements the asset interface and all assets passed into
-a collection must implement the same interface, which means you can easily
-nest collections within one another:
-
-    use Assetic\Asset\AssetCollection;
-    use Assetic\Asset\GlobAsset;
-    use Assetic\Asset\HttpAsset;
-
-    $asset = new AssetCollection(array(
-        new HttpAsset('http://example.com/jquery.min.js'),
-        new GlobAsset('/path/to/js/*'),
-    ));
-
-The `HttpAsset` class is a special asset class that loads a file over HTTP;
-`GlobAsset` is a special asset collection class that loads files based on a
-filesystem glob -- both implement the asset interface.
-
-This concept of nesting asset collection become even more powerful when you
-start applying different sets of filters to each collection. Imagine some of
-your application's stylesheets are written in SASS, while some are written in
-vanilla CSS. You can combine all of these into one seamless CSS asset:
-
-    use Assetic\Asset\AssetCollection;
-    use Assetic\Asset\GlobAsset;
-    use Assetic\Filter\SassFilter;
-    use Assetic\Filter\Yui\CssCompressorFilter;
-
-    $css = new AssetCollection(array(
-        new GlobAsset('/path/to/sass/*.sass', array(new SassFilter())),
-        new GlobAsset('/path/to/css/*.css'),
-    ), array(
-        new YuiCompressorFilter('/path/to/yuicompressor.jar'),
-    ));
-
-You'll notice I've also applied the YUI compressor filter to the combined
-asset so all CSS will be minified.
-
-### Iterating over an Asset Collection
-
-Once you have an asset collection you can iterate over it like you would a
-plain old PHP array:
-
-    echo "Source paths:\n";
-    foreach ($collection as $asset) {
-        echo ' - '.$asset->getSourcePath()."\n";
-    }
-
-The asset collection iterates recursively, which means you will only see the
-"leaf" assets during iteration. Iteration also includes a smart filter which
-ensures you only see each asset once, even if the same asset has been included
-multiple times.
-
-Next: [Defining Assets "On The Fly"](define.md)
diff --git a/core/vendor/kriswallsmith/assetic/docs/en/define.md b/core/vendor/kriswallsmith/assetic/docs/en/define.md
deleted file mode 100644
index 3d8d3b13b680..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/en/define.md
+++ /dev/null
@@ -1,145 +0,0 @@
-Defining Assets "On The Fly"
-----------------------------
-
-The second approach to using Assetic involves defining your application's
-assets "on the fly" in your templates, instead of in an isolated PHP file.
-Using this approach, your PHP template would look something like this:
-
-    <script src="<?php echo assetic_javascripts('js/*', 'yui_js') ?>"></script>
-
-This call to `assetic_javascripts()` serves a dual purpose. It will be read by
-the Assetic "formula loader" which will extract an asset "formula" that can be
-used to build, dump and output the asset. It will also be executed when the
-template is rendered, at which time the path to the output asset is output.
-
-Assetic includes the following templating helper functions:
-
- * `assetic_image()`
- * `assetic_javascripts()`
- * `assetic_stylesheets()`
-
-Defining assets on the fly is a much more sophisticated technique and
-therefore relies on services to do the heavy lifting. The main one being the
-asset factory.
-
-### Asset Factory
-
-The asset factory knows how to create asset objects using only arrays and
-scalar values as input. This is the same string syntax used by the `assetic_*`
-template helper functions.
-
-    use Assetic\Factory\AssetFactory;
-
-    $factory = new AssetFactory('/path/to/web');
-    $js = $factory->createAsset(array(
-        'js/jquery.js',
-        'js/jquery.plugin.js',
-        'js/application.js',
-    ));
-
-### Filter Manager
-
-You can also apply filters to asset created by the factory. To do this you
-must setup a `FilterManager`, which organizes filters by a name.
-
-    use Assetic\FilterManager;
-    use Assetic\Filter\GoogleClosure\ApiFilter as ClosureFilter;
-
-    $fm = new FilterManager();
-    $fm->set('closure', new ClosureFilter());
-    $factory->setFilterManager($fm);
-
-    $js = $factory->createAsset('js/*', 'closure');
-
-This code creates an instance of the Google Closure Compiler filter and
-assigns it the name `closure` using a filter manager. This filter manager is
-then injected into the asset factory, making the filter available as `closure`
-when creating assets.
-
-### Debug Mode
-
-The asset factory also introduces the concept of a debug mode. This mode
-allows you to omit certain filters from assets the factory creates depending
-on whether it is enabled or not.
-
-For example, the YUI Compressor is awesome, but it is only appropriate in a
-production environment as it is very difficult to debug minified Javascript.
-
-    use Asset\Factory\AssetFactory;
-
-    $factory = new AssetFactory('/path/to/web', true); // debug mode is on
-    $factory->setFilterManager($fm);
-    $js = $factory->createAsset('js/*', '?closure');
-
-By prefixing the `closure` filter's name with a question mark, we are telling
-the factory this filter is optional and should only be applied with debug mode
-is off.
-
-### Asset Manager and Asset References
-
-The asset factory provides another special string syntax that allows you to
-reference assets you defined elsewhere. These are called "asset references"
-and involve an asset manager which, similar to the filter manager, organizes
-assets by name.
-
-    use Assetic\AssetManager;
-    use Assetic\Asset\FileAsset;
-    use Assetic\Factory\AssetFactory;
-
-    $am = new AssetManager();
-    $am->set('jquery', new FileAsset('/path/to/jquery.js'));
-
-    $factory = new AssetFactory('/path/to/web');
-    $factory->setAssetManager($am);
-
-    $js = $factory->createAsset(array(
-        '@jquery',
-        'js/application.js',
-    ));
-
-### Extracting Assets from Templates
-
-Once you've defined a set of assets in your templates you must use the
-"formula loader" service to extract these asset definitions.
-
-    use Assetic\Factory\Loader\FunctionCallsFormulaLoader;
-    use Assetic\Factory\Resource\FileResource;
-
-    $loader = new FunctionCallsFormulaLoader($factory);
-    $formulae = $loader->load(new FileResource('/path/to/template.php'));
-
-These asset formulae aren't much use by themselves. They each include just
-enough information for the asset factory to create the intended asset object.
-In order for these to be useful they must be wrapped in the special
-`LazyAssetManager`.
-
-### The Lazy Asset Manager
-
-This service is a composition of the asset factory and one or more formula
-loaders. It acts as the glue between these services behind the scenes, but can
-be used just like a normal asset manager on the surface.
-
-    use Assetic\Asset\FileAsset;
-    use Assetic\Factory\LazyAssetManager;
-    use Assetic\Factory\Loader\FunctionCallsFormulaLoader;
-    use Assetic\Factory\Resource\DirectoryResource;
-
-    $am = new LazyAssetManager($factory);
-    $am->set('jquery', new FileAsset('/path/to/jquery.js'));
-    $am->setLoader('php', new FunctionCallsFormulaLoader($factory));
-    $am->addResource(new DirectoryResource('/path/to/templates', '/\.php$/'), 'php');
-
-### Asset Writer
-
-Finally, once you've create an asset manager that knows about every asset
-you've defined in your templates, you must use an asset writer to actually
-create the files your templates are going to be referencing.
-
-    use Assetic\AssetWriter;
-
-    $writer = new AssetWriter('/path/to/web');
-    $writer->writeManagerAssets($am);
-
-After running this script, all of the assets in your asset manager will be
-loaded into memory, filtered with their configured filters and dumped to your
-web directory as static files, ready to be served.
diff --git a/core/vendor/kriswallsmith/assetic/docs/en/index.md b/core/vendor/kriswallsmith/assetic/docs/en/index.md
deleted file mode 100644
index 46dc590f9e59..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/en/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
-Table Of Contents
------------------
-
- 1. [Introduction](introduction.md)
- 2. [Building and Dumping Assets](build.md)
- 3. [Basic Concepts](concepts.md)
- 4. [Defining Assets "On The Fly"](define.md)
diff --git a/core/vendor/kriswallsmith/assetic/docs/en/introduction.md b/core/vendor/kriswallsmith/assetic/docs/en/introduction.md
deleted file mode 100644
index 352f4961662d..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/en/introduction.md
+++ /dev/null
@@ -1,21 +0,0 @@
-What is Assetic?
-----------------
-
-Assetic is an asset management framework for PHP 5.3. Assetic enables you to
-use a variety of third party tools that will help bring order to your
-application's Javascripts, stylesheets and images.
-
-How Do I Use Assetic?
----------------------
-
-There are two distinct approaches you can take when using Assetic:
-
- 1. Build, dump and output assets in PHP files that you reference directly
-    from your templates
- 2. Defining assets in your templates ("on the fly") and use a loader to
-    extract, dump and output them
-
-The first approach is simpler, but the second, with all its moving parts,
-offers more flexibility and opportunity for optimization.
-
-Next: [Building and Dumping Assets](build.md)
diff --git a/core/vendor/kriswallsmith/assetic/docs/ja/build.md b/core/vendor/kriswallsmith/assetic/docs/ja/build.md
deleted file mode 100644
index bee59ba659ce..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/ja/build.md
+++ /dev/null
@@ -1,30 +0,0 @@
-アセットのビルドとダンプ
----------------------------
-
-Asseticを使う一番単純な方法は、次の2ステップからなります。
-
- 1. 公開領域内にPHPスクリプトを作成し、Assetic OOP APIを使用してアセットの作成・出力を行う
- 2. テンプレートから上記のファイルを参照する
-
-例えば、公開領域内に`assets/javascripts.php`ファイルを作成し、
-下記のようなコードを記述します。
-
-    use Assetic\Asset\AssetCollection;
-    use Assetic\Asset\FileAsset;
-    use Assetic\Filter\Yui\JsCompressorFilter as YuiCompressorFilter;
-
-    $js = new AssetCollection(array(
-        new FileAsset(__DIR__.'/jquery.js'),
-        new FileAsset(__DIR__.'/application.js'),
-    ), array(
-        new YuiCompressorFilter('/path/to/yuicompressor.jar'),
-    ));
-
-    header('Content-Type: application/js');
-    echo $js->dump();
-
-HTMLテンプレート側では、単に`<script>`タグを用いて、生成されたJavascriptをインクルードすることになります。
-
-    <script src="/assets/javascripts.php"></script>
-
-Next: [コンセプト](concepts.md)
diff --git a/core/vendor/kriswallsmith/assetic/docs/ja/concepts.md b/core/vendor/kriswallsmith/assetic/docs/ja/concepts.md
deleted file mode 100644
index 3479b20eea63..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/ja/concepts.md
+++ /dev/null
@@ -1,121 +0,0 @@
-Assetic OOP APIを使用するためには、まず、[アセット」と「フィルタ」の2つの重要なコンセプトを理解する必要があります。
-
-### アセット
-
-アセットとは、読み込み、及びダンプが可能な、コンテンツとメタデータを内包しているオブジェクトの事を指します。
-大体の場合において3つのカテゴリー、すなわち、Javascriptとスタイルシート、画像のどれかに属することになるでしょう。
-読み込みの方法としては、ファイルシステムからがほとんどですが、
-HTTPやデータベース経由でも、文字列としてでも読み込みが可能で、事実上あらゆるものが読み込み可能です。
-Asseticのアセットインターフェースを満足させさえすれば良いのです。
-
-
-### フィルタ
- 
-フィルタは、アセットが読み込まれる、かつ/もしくは、ダンプされる際に、
-アセットコンテンツに対して作用するオブジェクトです。
-アセットと同様に、Asseticのフィルタインターフェースを実装することで、
-どのような作用も可能になります。
-
-フィルタを用いて、アセットに適用できるツール群の一覧です。
-
- * CoffeeScript
- * CssEmbed
- * CssMin
- * Google Closure Compiler
- * jpegoptim
- * jpegtran
- * Less
- * LessPHP
- * optipng
- * Packager
- * pngout
- * SASS
- * Sprockets (version 1)
- * Stylus
- * YUI Compressor
-
-
-### アセットとフィルタの使用
-
-まずはアセットオブジェクトを作成することから始まります。
-多くの場合は`FileAsset`をインスタンス化し、ファイルシステムのパスを第一引数に渡します。
-
-    $asset = new Assetic\Asset\FileAsset('/path/to/main.css');
-
-アセットオブジェクトを作成したら、`ensureFilter()`を呼び、フィルタを追加します。
-例えば、アセットコンテンツにYUI Compressorを適用してみましょう。
-
-    $yui = new Assetic\Filter\Yui\CssCompressorFilter('/path/to/yui.jar');
-    $asset->ensureFilter($yui);
-
-任意のフィルタを追加したら、完成したアセットをブラウザに出力してみましょう。
-
-    header('Content-Type: text/css');
-    echo $asset->dump();
-
-### アセットコレクション
-
-1つのファイルに同じ種類のアセットをまとめて、不要なHTTPリクエストを抑えてみるのも良いでしょう。
-Asseticでは`AsseticColletion`クラスを使用することで可能となります。
-Assetic内部的には、このクラス自体は他のアセットと同様に、アセットインターフェースを実装したものですが、
-複数のアセットを1つにまとめることが可能になります。
-
-    use Assetic\Asset\AssetCollection;
-
-    $asset = new AssetCollection(array(
-        new FileAsset('/path/to/js/jquery.js'),
-        new FileAsset('/path/to/js/jquery.plugin.js'),
-        new FileAsset('/path/to/js/application.js'),
-    ));
-
-### ネストしたアセットコレクション
-
-コレクションクラス自体がアセットインターフェースを実装し、コレクション内のアセットも同様に
-アセットインターフェースを実装しているので、簡単にネストすることができます。
-
-    use Assetic\Asset\AssetCollection;
-    use Assetic\Asset\GlobAsset;
-    use Assetic\Asset\HttpAsset;
-
-    $asset = new AssetCollection(array(
-        new HttpAsset('http://example.com/jquery.min.js'),
-        new GlobAsset('/path/to/js/*'),
-    ));
-
-`HttpAsset`は、HTTP経由でファイルを読み込むアセットクラス。
-`GlobAsset`は、ファイルシステムのglobを基にファイル群を読み込むアセットコレクションクラス。
-両者ともにアセットインターフェースを実装しています。
-
-このネストしたアセットコレクションという概念は、コレクションそれぞれに異なる
-フィルタ群を適用しようとしたときに、効果を発揮します。
-例えば、スタイルシートがSAASで記述されたものと、vanilla CSSを用いて記述されたものからなる
-アプリケーションを考えた場合、次のようにして、全てを1つのシームレスなCSSアセットにまとめることができます。
-
-    use Assetic\Asset\AssetCollection;
-    use Assetic\Asset\GlobAsset;
-    use Assetic\Filter\SassFilter;
-    use Assetic\Filter\Yui\CssCompressorFilter;
-
-    $css = new AssetCollection(array(
-        new GlobAsset('/path/to/sass/*.sass', array(new SassFilter())),
-        new GlobAsset('/path/to/css/*.css'),
-    ), array(
-        new YuiCompressorFilter('/path/to/yuicompressor.jar'),
-    ));
-
-上記の例では、1つにまとめられたCSSを、さらにYUI compressorフィルタを適用することで、全体を圧縮しています。
-
-### アセットコレクションのイテレーション
-
-アセットコレクションは、旧来のPHP配列のように、イテレートできます。
-
-    echo "Source paths:\n";
-    foreach ($collection as $asset) {
-        echo ' - '.$asset->getSourcePath()."\n";
-    }
-
-アセットコレクションのイテレーションは再帰的で、「葉」にあたるアセットの取得を行います。
-また、気の利いたフィルタを内蔵しているので、同じアセットがコレクション内に複数存在する場合でも、
-一度だけのインクルードが保証されます。
-
-Next: [アセットを「オンザフライ」で定義する](define.md)
diff --git a/core/vendor/kriswallsmith/assetic/docs/ja/define.md b/core/vendor/kriswallsmith/assetic/docs/ja/define.md
deleted file mode 100644
index 3b0443610b7d..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/ja/define.md
+++ /dev/null
@@ -1,140 +0,0 @@
-アセットの「オンザフライ」な定義
-----------------------------------------
-
-Asseticの使用方法二つ目は、独立したPHPファイルを使用する代わりに、
-テンプレートで「オンザフライ」にアセット定義をする方法です。
-このアプローチでは、PHPテンプレートは下記のようになります。
-
-    <script src="<?php echo assetic_javascripts('js/*', 'yui_js') ?>"></script>
-
-`assetic_javascripts()`の呼び出しは2つの目的を兼ねています。
-まず、「フォーミュラローダー」により走査され、アセットの構築、ダンプ、及び出力を行うための「フォーミュラ(処方箋)」が抽出されます。
-また、テンプレートのレンダー時にも実行され、アセットの出力パスが出力されます。
-
-Asseticには下記のようなヘルパー関数があります。
-
- * `assetic_image()`
- * `assetic_javascripts()`
- * `assetic_stylesheets()`
-
-アセットをオンザフライに定義するということは、より高度なテクニックであり、
-そのため、重い仕事をするサービスに依存することになります。
-そのうちの重要なものがアセットファクトリです。
-
-### アセットファクトリ
-
-アセットファクトリは、アセットオブジェクトを、配列とスカラ値のみから、
-どのように作成するのか把握しています。
-`assetic_*`ヘルパー関数で使用する記法と同様のものとなります。
-
-    use Assetic\Factory\AssetFactory;
-
-    $factory = new AssetFactory('/path/to/web');
-    $js = $factory->createAsset(array(
-        'js/jquery.js',
-        'js/jquery.plugin.js',
-        'js/application.js',
-    ));
-
-### フィルタマネージャー
-
-ファクトリによって作成されたアセットに対しても、フィルタを適用することができます。
-そのためには、`FilterManager`を設定して、名前を定義しフィルタを構成します。
-
-    use Assetic\FilterManager;
-    use Assetic\Filter\GoogleClosure\ApiFilter as ClosureFilter;
-
-    $fm = new FilterManager();
-    $fm->set('closure', new ClosureFilter());
-    $factory->setFilterManager($fm);
-
-    $js = $factory->createAsset('js/*', 'closure');
-
-上記の例では、Google Closure Compilerフィルタをインスタンス化し、
-フィルタマネージャーを通じて`closure`という名前をつけています。
-このフィルタマネージャーをアセットファクトリに渡すことで、
-アセット作成時には、`closure`という名前でフィルタを使用できるようになります。
-
-### デバッグモード
-
-アセットファクトリは、デバッグモードというコンセプトも取り入れており、
-デバッグモードの設定により、ファクトリが作成するアセットから、
-特定のフィルタを除外することができます。
-
-たとえば、YUI Compressorは大変素晴らしいのですが、圧縮されたJavascriptを
-デバッグするのは大変難しく、プロダクション環境でのみの使用が適切でしょう。
-
-    use Asset\Factory\AssetFactory;
-
-    $factory = new AssetFactory('/path/to/web', true); // デバッグモードON
-    $factory->setFilterManager($fm);
-    $js = $factory->createAsset('js/*', '?closure');
-
-フィルタ名`closure`の前にクエスチョンマークを記述すると、ファクトリに対して、
-このフィルタはオプションであり、
-デバッグモードがOFFの時にのみ適用するように通知することができます。
-
-### アセットマネージャーとアセットリファレンス
-
-アセットファクトリにはもう一つ特別な記法があり、別の場所で定義した
-アセットを参照することができるようになります。
-これを「アセットリファレンス」と呼び、アセットマネージャーを通じて、
-フィルタマネージャーと同様の、名前によるアセットの構成が可能です。
-
-    use Assetic\AssetManager;
-    use Assetic\Asset\FileAsset;
-    use Assetic\Factory\AssetFactory;
-
-    $am = new AssetManager();
-    $am->set('jquery', new FileAsset('/path/to/jquery.js'));
-
-    $factory = new AssetFactory('/path/to/web');
-    $factory->setAssetManager($am);
-
-    $js = $factory->createAsset(array(
-        '@jquery',
-        'js/application.js',
-    ));
-
-### テンプレートからのアセット抽出
-
-テンプレート内でアセット群を定義したら、「フォーミュラローダー」サービスを使用して、
-アセットの定義を抽出します。
-
-    use Assetic\Factory\Loader\FunctionCallsFormulaLoader;
-    use Assetic\Factory\Resource\FileResource;
-
-    $loader = new FunctionCallsFormulaLoader($factory);
-    $formulae = $loader->load(new FileResource('/path/to/template.php'));
-
-これらのフォーミュラ自体は、それ自体で使途はあまりなく、
-アセットファクトリが目的のアセットオブジェクトを作成するに足る情報しか持っていません。
-`LazyAssetManager`でラップすることで有益なものとなります。
-
-### レイジーなアセットマネージャー
-
-このサービスは、アセットファクトリと、1つ以上のフォーミュラローダーから成っており、
-裏方のサービス間のグルとして動作しますが、表面上では、通常のアセットマネージャーと同じように使用することができます。
-
-    use Assetic\Asset\FileAsset;
-    use Assetic\Factory\LazyAssetManager;
-    use Assetic\Factory\Loader\FunctionCallsFormulaLoader;
-    use Assetic\Factory\Resource\DirectoryResource;
-
-    $am = new LazyAssetManager($factory);
-    $am->set('jquery', new FileAsset('/path/to/jquery.js'));
-    $am->setLoader('php', new FunctionCallsFormulaLoader($factory));
-    $am->addResource(new DirectoryResource('/path/to/templates', '/\.php$/'), 'php');
-
-### アセットライター
-
-作成したアセットマネージャーが、テンプレート内で定義した全てのアセットを把握したら、
-アセットライターを使用して、テンプレートが参照することになる実際のファイルを作成します。
-
-    use Assetic\AssetWriter;
-
-    $writer = new AssetWriter('/path/to/web');
-    $writer->writeManagerAssets($am);
-
-上記のスクリプトを実行すると、アセットマネージャー内のすべてのアセットがメモリに読み込まれ、
-指定したフィルタが適用された後、公開領域に静的ファイルとしてダンプされ、準備完了となります。
diff --git a/core/vendor/kriswallsmith/assetic/docs/ja/index.md b/core/vendor/kriswallsmith/assetic/docs/ja/index.md
deleted file mode 100644
index 138280d2e6b7..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/ja/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
-目次
------
-
- 1. [イントロダクション](introduction.md)
- 2. [アセットの構築とダンプ](build.md)
- 3. [コンセプト](concepts.md)
- 4. [アセットを「オンザフライ」で定義する](define.md)
diff --git a/core/vendor/kriswallsmith/assetic/docs/ja/introduction.md b/core/vendor/kriswallsmith/assetic/docs/ja/introduction.md
deleted file mode 100644
index 0f45a8edc982..000000000000
--- a/core/vendor/kriswallsmith/assetic/docs/ja/introduction.md
+++ /dev/null
@@ -1,18 +0,0 @@
-Asseticとは
------------------
-
-Asseticは、PHP5.3用のアセット管理フレームワークです。
-Asseticを導入することで、Javascriptやスタイルシート、画像をコントロールする
-様々なサードパーティー製のツールを使用できるようになります。
-
-Asseticの使用方法
----------------------
-
-2つの異なるアプローチがあります。
-
- 1. アセットのビルド、ダンプ、出力をPHPファイルで行い、テンプレートからそのファイルを直接参照する方法
- 2. テンプレート内でアセットを(「オンザフライ」に)定義し、抽出やダンプ、出力にローダーを使用する方法
-
-前者はいくらかシンプルである一方、後者は動的で柔軟性に富み、最適化が可能となります。
-
-Next: [アセットの構築とダンプ](build.md)
diff --git a/core/vendor/kriswallsmith/assetic/phpunit.travis.xml b/core/vendor/kriswallsmith/assetic/phpunit.travis.xml
deleted file mode 100644
index 3a27eea32afe..000000000000
--- a/core/vendor/kriswallsmith/assetic/phpunit.travis.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit bootstrap="./tests/bootstrap.php" colors="true">
-    <testsuites>
-        <testsuite name="Assetic Test Suite">
-            <directory suffix="Test.php">./tests/Assetic/Test/</directory>
-        </testsuite>
-    </testsuites>
-
-    <php>
-        <!-- <server name="CLOSURE_JAR" value="/path/to/google-closure/compiler.jar" /> -->
-        <!-- <server name="COFFEE_BIN" value="/path/to/coffee" /> -->
-        <!-- <server name="NODE_BIN" value="/path/to/node" /> -->
-        <!-- <server name="NODE_PATH" value="/path/to/node/lib" /> -->
-        <server name="LESSPHP" value="vendor/lessphp/lessc.inc.php" />
-        <!-- <server name="SASS_BIN" value="/path/to/sass" /> -->
-        <!-- <server name="COMPASS_BIN" value="/path/to/compass" /> -->
-        <!-- <server name="RUBY_BIN" value="/path/to/ruby" /> -->
-        <!-- <server name="SPROCKETS_LIB" value="/path/to/sprockets/lib" /> -->
-        <!-- <server name="TWIG_LIB" value="vendor/twig/lib" /> -->
-        <!-- <server name="YUI_COMPRESSOR_JAR" value="/path/to/yuicompressor-2.4.2.jar" /> -->
-        <!-- <server name="OPTIPNG_BIN" value="/path/to/optipng" /> -->
-        <!-- <server name="JPEGOPTIM_BIN" value="/path/to/jpegoptim" /> -->
-        <!-- <server name="JPEGTRAN_BIN" value="/path/to/jpegtran" /> -->
-        <!-- <server name="PNGOUT_BIN" value="/path/to/pngout" /> -->
-        <server name="CSSMIN" value="vendor/cssmin/source/CssMin.php" />
-        <server name="JSMIN" value="vendor/minify/min/lib/JSMin.php" />
-        <server name="JSMINPLUS" value="vendor/minify/min/lib/JSMinPlus.php" />
-        <!-- <server name="CSSEMBED_JAR" value="/path/to/cssembed.jar" /> -->
-        <server name="PACKAGER" value="vendor/packager/packager.php" />
-        <server name="PACKER" value="vendor/packer/class.JavaScriptPacker.php" />
-    </php>
-
-    <filter>
-        <whitelist>
-            <directory suffix=".php">./src/Assetic/</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/kriswallsmith/assetic/phpunit.xml.dist b/core/vendor/kriswallsmith/assetic/phpunit.xml.dist
deleted file mode 100644
index f22113e96d71..000000000000
--- a/core/vendor/kriswallsmith/assetic/phpunit.xml.dist
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit bootstrap="./tests/bootstrap.php" colors="true">
-    <testsuites>
-        <testsuite name="Assetic Test Suite">
-            <directory suffix="Test.php">./tests/Assetic/Test/</directory>
-        </testsuite>
-    </testsuites>
-
-    <php>
-        <!-- <server name="CLOSURE_JAR" value="/path/to/google-closure/compiler.jar" /> -->
-        <!-- <server name="COFFEE_BIN" value="/path/to/coffee" /> -->
-        <!-- <server name="COMPASS_BIN" value="/path/to/compass" /> -->
-        <!-- <server name="CSSEMBED_JAR" value="/path/to/cssembed.jar" /> -->
-        <!-- <server name="CSSMIN" value="/path/to/cssmin/source/CssMin.php" /> -->
-        <!-- <server name="JSMIN" value="/path/to/minify/min/lib/JSMin.php" /> -->
-        <!-- <server name="JSMINPLUS" value="/path/to/minify/min/lib/JSMinPlus.php" /> -->
-        <!-- <server name="GSS_JAR" value="/path/to/closure-stylesheets.jar" /> -->
-        <!-- <server name="JPEGOPTIM_BIN" value="/path/to/jpegoptim" /> -->
-        <!-- <server name="JPEGTRAN_BIN" value="/path/to/jpegtran" /> -->
-        <!-- <server name="LESSPHP" value="/path/to/lessphp/lessc.inc.php" /> -->
-        <!-- <server name="NODE_BIN" value="/path/to/node" /> -->
-        <!-- <server name="NODE_PATH" value="/path/to/node/lib" /> -->
-        <!-- <server name="OPTIPNG_BIN" value="/path/to/optipng" /> -->
-        <!-- <server name="PACKAGER" value="/path/to/packager.php" /> -->
-        <!-- <server name="PNGOUT_BIN" value="/path/to/pngout" /> -->
-        <!-- <server name="RUBY_BIN" value="/path/to/ruby" /> -->
-        <!-- <server name="SASS_BIN" value="/path/to/sass" /> -->
-        <!-- <server name="SPROCKETS_LIB" value="/path/to/sprockets/lib" /> -->
-        <!-- <server name="SYMFONY_PROCESS" value="/path/to/Process" /> -->
-        <!-- <server name="TWIG_LIB" value="/path/to/twig/lib" /> -->
-        <!-- <server name="YUI_COMPRESSOR_JAR" value="/path/to/yuicompressor-2.4.2.jar" /> -->
-        <!-- <server name="UGLIFYJS_BIN" value="/path/to/uglifyjs" /> -->
-        <!-- <server name="PACKER" value="/path/to/class.JavaScriptPacker.php" /> -->
-    </php>
-
-    <filter>
-        <whitelist>
-            <directory suffix=".php">./src/Assetic/</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCache.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCache.php
index f02061fa9393..01793901a9a5 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCache.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCache.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollection.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollection.php
index 8a9afe8244a3..932877880637 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollection.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollection.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -38,6 +38,7 @@ class AssetCollection implements \IteratorAggregate, AssetCollectionInterface
      * @param array  $assets     Assets for the current collection
      * @param array  $filters    Filters for the current collection
      * @param string $sourceRoot The root directory
+     * @param array  $vars
      */
     public function __construct($assets = array(), $filters = array(), $sourceRoot = null, array $vars = array())
     {
@@ -71,7 +72,9 @@ public function removeLeaf(AssetInterface $needle, $graceful = false)
                 unset($this->clones[$asset], $this->assets[$i]);
 
                 return true;
-            } elseif ($asset instanceof AssetCollectionInterface && $asset->removeLeaf($needle, true)) {
+            }
+
+            if ($asset instanceof AssetCollectionInterface && $asset->removeLeaf($needle, true)) {
                 return true;
             }
         }
@@ -92,7 +95,9 @@ public function replaceLeaf(AssetInterface $needle, AssetInterface $replacement,
                 $this->assets[$i] = $replacement;
 
                 return true;
-            } elseif ($asset instanceof AssetCollectionInterface && $asset->replaceLeaf($needle, $replacement, true)) {
+            }
+
+            if ($asset instanceof AssetCollectionInterface && $asset->replaceLeaf($needle, $replacement, true)) {
                 return true;
             }
         }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollectionInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollectionInterface.php
index 11baf41c7107..8a7927ea79e1 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollectionInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollectionInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -35,19 +35,25 @@ public function add(AssetInterface $asset);
     /**
      * Removes a leaf.
      *
-     * @param AssetInterface $needle The leaf to remove
+     * @param AssetInterface $leaf      The leaf to remove
+     * @param Boolean        $graceful  Whether the failure should return false or throw an exception
+     *
+     * @return Boolean Whether the asset has been found
      *
      * @throws \InvalidArgumentException If the asset cannot be found
      */
-    public function removeLeaf(AssetInterface $leaf);
+    public function removeLeaf(AssetInterface $leaf, $graceful = false);
 
     /**
      * Replaces an existing leaf with a new one.
      *
      * @param AssetInterface $needle      The current asset to replace
      * @param AssetInterface $replacement The new asset
+     * @param Boolean        $graceful  Whether the failure should return false or throw an exception
+     *
+     * @return Boolean Whether the asset has been found
      *
-     * @throws InvalidArgumentException If the asset cannot be found
+     * @throws \InvalidArgumentException If the asset cannot be found
      */
-    public function replaceLeaf(AssetInterface $needle, AssetInterface $replacement);
+    public function replaceLeaf(AssetInterface $needle, AssetInterface $replacement, $graceful = false);
 }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetInterface.php
index 962e87806fa2..0f36aea09af7 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetReference.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetReference.php
index b34ff1ef13b1..57c3930ab6a4 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetReference.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetReference.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php
index 1ce93ae3ee04..12b0340617ad 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -36,7 +36,10 @@ abstract class BaseAsset implements AssetInterface
     /**
      * Constructor.
      *
-     * @param array $filters Filters for the asset
+     * @param array  $filters    Filters for the asset
+     * @param string $sourceRoot The root directory
+     * @param string $sourcePath The asset path
+     * @param array  $vars
      */
     public function __construct($filters = array(), $sourceRoot = null, $sourcePath = null, array $vars = array())
     {
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/FileAsset.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/FileAsset.php
index 0933ade141f1..00870b043061 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/FileAsset.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/FileAsset.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -30,6 +30,7 @@ class FileAsset extends BaseAsset
      * @param array  $filters    An array of filters
      * @param string $sourceRoot The source asset root directory
      * @param string $sourcePath The source asset path
+     * @param array  $vars
      *
      * @throws \InvalidArgumentException If the supplied root doesn't match the source when guessing the path
      */
@@ -55,8 +56,7 @@ public function __construct($source, $filters = array(), $sourceRoot = null, $so
 
     public function load(FilterInterface $additionalFilter = null)
     {
-        $source = PathUtils::resolvePath($this->source, $this->getVars(),
-            $this->getValues());
+        $source = PathUtils::resolvePath($this->source, $this->getVars(), $this->getValues());
 
         if (!is_file($source)) {
             throw new \RuntimeException(sprintf('The source file "%s" does not exist.', $source));
@@ -67,8 +67,7 @@ public function load(FilterInterface $additionalFilter = null)
 
     public function getLastModified()
     {
-        $source = PathUtils::resolvePath($this->source, $this->getVars(),
-            $this->getValues());
+        $source = PathUtils::resolvePath($this->source, $this->getVars(), $this->getValues());
 
         if (!is_file($source)) {
             throw new \RuntimeException(sprintf('The source file "%s" does not exist.', $source));
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/GlobAsset.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/GlobAsset.php
index 4f8559cac02a..daf6f5228d5f 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/GlobAsset.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/GlobAsset.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -31,6 +31,7 @@ class GlobAsset extends AssetCollection
      * @param string|array $globs   A single glob path or array of paths
      * @param array        $filters An array of filters
      * @param string       $root    The root directory
+     * @param array        $vars
      */
     public function __construct($globs, $filters = array(), $root = null, array $vars = array())
     {
@@ -101,7 +102,9 @@ private function initialize()
 
             if (false !== $paths = glob($glob)) {
                 foreach ($paths as $path) {
-                    $this->add(new FileAsset($path, array(), $this->getSourceRoot()));
+                    if (is_file($path)) {
+                        $this->add(new FileAsset($path, array(), $this->getSourceRoot()));
+                    }
                 }
             }
         }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/HttpAsset.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/HttpAsset.php
index d1dcfe0c48be..ef0d58c0389c 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/HttpAsset.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/HttpAsset.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -28,8 +28,10 @@ class HttpAsset extends BaseAsset
     /**
      * Constructor.
      *
-     * @param string $sourceUrl The source URL
-     * @param array  $filters   An array of filters
+     * @param string  $sourceUrl    The source URL
+     * @param array   $filters      An array of filters
+     * @param Boolean $ignoreErrors
+     * @param array   $vars
      *
      * @throws \InvalidArgumentException If the first argument is not an URL
      */
@@ -53,12 +55,13 @@ public function __construct($sourceUrl, $filters = array(), $ignoreErrors = fals
     public function load(FilterInterface $additionalFilter = null)
     {
         if (false === $content = @file_get_contents(PathUtils::resolvePath(
-                $this->sourceUrl, $this->getVars(), $this->getValues()))) {
+                $this->sourceUrl, $this->getVars(), $this->getValues()))
+        ) {
             if ($this->ignoreErrors) {
                 return;
-            } else {
-                throw new \RuntimeException(sprintf('Unable to load asset from URL "%s"', $this->sourceUrl));
             }
+
+            throw new \RuntimeException(sprintf('Unable to load asset from URL "%s"', $this->sourceUrl));
         }
 
         $this->doLoad($content, $additionalFilter);
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionFilterIterator.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionFilterIterator.php
index f9ad79b6852e..de9c169e8ef5 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionFilterIterator.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionFilterIterator.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionIterator.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionIterator.php
index 09330fef3cd2..134b0a86f216 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionIterator.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionIterator.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -35,7 +35,7 @@ public function __construct(AssetCollectionInterface $coll, \SplObjectStorage $c
         $this->output  = $coll->getTargetPath();
         $this->clones  = $clones;
 
-        if (false === $pos = strpos($this->output, '.')) {
+        if (false === $pos = strrpos($this->output, '.')) {
             $this->output .= '_*';
         } else {
             $this->output = substr($this->output, 0, $pos).'_*'.substr($this->output, $pos);
@@ -46,6 +46,7 @@ public function __construct(AssetCollectionInterface $coll, \SplObjectStorage $c
      * Returns a copy of the current asset with filters and a target URL applied.
      *
      * @param Boolean $raw Returns the unmodified asset if true
+     * @return \Assetic\Asset\AssetInterface
      */
     public function current($raw = false)
     {
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/StringAsset.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/StringAsset.php
index 6d6dc5f79d88..7222fe5e0777 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/StringAsset.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/StringAsset.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/AssetManager.php b/core/vendor/kriswallsmith/assetic/src/Assetic/AssetManager.php
index 07463569bab9..57d6d7107aa0 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/AssetManager.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/AssetManager.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -57,6 +57,8 @@ public function has($name)
      *
      * @param string         $name  The asset name
      * @param AssetInterface $asset The asset
+     *
+     * @throws \InvalidArgumentException If tthe asset name is invalid
      */
     public function set($name, AssetInterface $asset)
     {
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/AssetWriter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/AssetWriter.php
index b1a90adc3ed1..f2c627fc8cb8 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/AssetWriter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/AssetWriter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -30,6 +30,9 @@ class AssetWriter
      * Constructor.
      *
      * @param string $dir The base web directory
+     * @param array  $varValues
+     *
+     * @throws \InvalidArgumentException if a variable value is not a string
      */
     public function __construct($dir, array $varValues = array())
     {
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ApcCache.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ApcCache.php
index 22855884c4b3..6a56f39467fa 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ApcCache.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ApcCache.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ArrayCache.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ArrayCache.php
new file mode 100644
index 000000000000..e322cb318380
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ArrayCache.php
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Cache;
+
+/**
+ * A simple array cache
+ *
+ * @author Michael Mifsud <xzyfer@gmail.com>
+ */
+class ArrayCache implements CacheInterface
+{
+    private $cache = array();
+
+    /**
+     * @see CacheInterface::has()
+     */
+    public function has($key)
+    {
+        return isset($this->cache[$key]);
+    }
+
+    /**
+     * @see CacheInterface::get()
+     */
+    public function get($key)
+    {
+        if(!$this->has($key)) {
+            throw new \RuntimeException('There is no cached value for '.$key);
+        }
+
+        return $this->cache[$key];
+    }
+
+    /**
+     * @see CacheInterface::set()
+     */
+    public function set($key, $value)
+    {
+        $this->cache[$key] = $value;
+    }
+
+    /**
+     * @see CacheInterface::remove()
+     */
+    public function remove($key)
+    {
+        unset($this->cache[$key]);
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/CacheInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/CacheInterface.php
index 30448e9ca55b..7f301f338a5f 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/CacheInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/CacheInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ConfigCache.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ConfigCache.php
index de60c9ef701b..b5ad0c168bf0 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ConfigCache.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ConfigCache.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ExpiringCache.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ExpiringCache.php
index 9e95b6dce253..74ca1adfa42f 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ExpiringCache.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/ExpiringCache.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/FilesystemCache.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/FilesystemCache.php
index 45cfbdb58125..7698aed96beb 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/FilesystemCache.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Cache/FilesystemCache.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Exception/Exception.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Exception/Exception.php
index 3b1c9cdfa34f..e9e37c7d16fe 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Exception/Exception.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Exception/Exception.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Exception/FilterException.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Exception/FilterException.php
index 82203de1b6e5..ced544978743 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Exception/FilterException.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Exception/FilterException.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticExtension.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticExtension.php
index 6d91443e3f23..575eeeb8b830 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticExtension.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticExtension.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -59,7 +59,7 @@ public function getGlobals()
         return array(
             'assetic' => array(
                 'debug' => $this->factory->isDebug(),
-                'vars'  => null !== $this->valueSupplier ? $this->valueSupplier->getValues() : array(),
+                'vars'  => null !== $this->valueSupplier ? new ValueContainer($this->valueSupplier) : array(),
             ),
         );
     }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticFilterFunction.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticFilterFunction.php
index c5c79a8dbe88..c43aa3049548 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticFilterFunction.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticFilterFunction.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticFilterInvoker.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticFilterInvoker.php
index 185b67b80ee6..577e1f659f3d 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticFilterInvoker.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticFilterInvoker.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticNode.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticNode.php
index 8209dfa698fa..0b32e0ac6d41 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticNode.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticNode.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticTokenParser.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticTokenParser.php
index 90f5d9c98ccc..3e5fb93fa6e5 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticTokenParser.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticTokenParser.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/TwigFormulaLoader.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/TwigFormulaLoader.php
index 6edd25b974b5..ddfe8922f675 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/TwigFormulaLoader.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/TwigFormulaLoader.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -43,6 +43,8 @@ public function load(ResourceInterface $resource)
     /**
      * Loads assets from the supplied node.
      *
+     * @param \Twig_Node $node
+     *
      * @return array An array of asset formulae indexed by name
      */
     private function loadNode(\Twig_Node $node)
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/TwigResource.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/TwigResource.php
index 58d4b452493e..7a071644c5ff 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/TwigResource.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/TwigResource.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/ValueContainer.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/ValueContainer.php
new file mode 100644
index 000000000000..f959c33ad47b
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/ValueContainer.php
@@ -0,0 +1,79 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Extension\Twig;
+
+use Assetic\ValueSupplierInterface;
+
+/**
+ * Container for values initialized lazily from a ValueSupplierInterface.
+ *
+ * @author Christophe Coevoet <stof@notk.org>
+ */
+class ValueContainer implements \ArrayAccess, \IteratorAggregate, \Countable
+{
+    private $values;
+    private $valueSupplier;
+
+    public function __construct(ValueSupplierInterface $valueSupplier)
+    {
+        $this->valueSupplier = $valueSupplier;
+    }
+
+    public function offsetExists($offset)
+    {
+        $this->initialize();
+
+        return array_key_exists($offset, $this->values);
+    }
+
+    public function offsetGet($offset)
+    {
+        $this->initialize();
+
+        if (!array_key_exists($offset, $this->values)) {
+            throw new \OutOfRangeException(sprintf('The variable "%s" does not exist.', $offset));
+        }
+
+        return $this->values[$offset];
+    }
+
+    public function offsetSet($offset, $value)
+    {
+        throw new \BadMethodCallException('The ValueContainer is read-only.');
+    }
+
+    public function offsetUnset($offset)
+    {
+        throw new \BadMethodCallException('The ValueContainer is read-only.');
+    }
+
+    public function getIterator()
+    {
+        $this->initialize();
+
+        return new \ArrayIterator($this->values);
+    }
+
+    public function count()
+    {
+        $this->initialize();
+
+        return count($this->values);
+    }
+
+    private function initialize()
+    {
+        if (null === $this->values) {
+            $this->values = $this->valueSupplier->getValues();
+        }
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/AssetFactory.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/AssetFactory.php
index c4393c0e87b1..9e90f5d52a29 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/AssetFactory.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/AssetFactory.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -40,7 +40,6 @@ class AssetFactory
      * Constructor.
      *
      * @param string  $root   The default root directory
-     * @param string  $output The default output string
      * @param Boolean $debug  Filters prefixed with a "?" will be omitted in debug mode
      */
     public function __construct($root, $debug = false)
@@ -286,11 +285,12 @@ protected function parseInput($input, array $options = array())
             $path  = $input;
             $input = $this->root.'/'.$path;
         }
+
         if (false !== strpos($input, '*')) {
             return $this->createGlobAsset($input, $root, $options['vars']);
-        } else {
-            return $this->createFileAsset($input, $root, $path, $options['vars']);
         }
+
+        return $this->createFileAsset($input, $root, $path, $options['vars']);
     }
 
     protected function createAssetCollection(array $assets = array(), array $options = array())
@@ -338,6 +338,8 @@ protected function getFilter($name)
      * collection itself.
      *
      * @param AssetCollectionInterface $asset An asset collection
+     *
+     * @return AssetCollectionInterface
      */
     private function applyWorkers(AssetCollectionInterface $asset)
     {
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/LazyAssetManager.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/LazyAssetManager.php
index d74227966cad..922a65d5fa0f 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/LazyAssetManager.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/LazyAssetManager.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/BasePhpFormulaLoader.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/BasePhpFormulaLoader.php
index d0ad598647a3..122d53c9a470 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/BasePhpFormulaLoader.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/BasePhpFormulaLoader.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/CachedFormulaLoader.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/CachedFormulaLoader.php
index 174fdd29a7b6..cd57def2466d 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/CachedFormulaLoader.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/CachedFormulaLoader.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/FormulaLoaderInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/FormulaLoaderInterface.php
index c77040344b24..f7adc1a1c78b 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/FormulaLoaderInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/FormulaLoaderInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/FunctionCallsFormulaLoader.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/FunctionCallsFormulaLoader.php
index 9147806f193b..902a5238f1d6 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/FunctionCallsFormulaLoader.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Loader/FunctionCallsFormulaLoader.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/CoalescingDirectoryResource.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/CoalescingDirectoryResource.php
index 07f880e7adbf..da4a40e1c8e2 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/CoalescingDirectoryResource.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/CoalescingDirectoryResource.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/DirectoryResource.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/DirectoryResource.php
index 914d4a6d1e71..83c42be3e17e 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/DirectoryResource.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/DirectoryResource.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -121,9 +121,9 @@ public function accept()
 
         if ($file->isDir()) {
             return '.' != $name[0];
-        } else {
-            return null === $this->pattern || 0 < preg_match($this->pattern, $name);
         }
+
+        return null === $this->pattern || 0 < preg_match($this->pattern, $name);
     }
 
     public function getChildren()
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/FileResource.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/FileResource.php
index 1486f3e48d52..505500688d02 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/FileResource.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/FileResource.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/IteratorResourceInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/IteratorResourceInterface.php
index 02d797fd2079..815c958cc1da 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/IteratorResourceInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/IteratorResourceInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/ResourceInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/ResourceInterface.php
index 23b8a3bdaa10..a33610b50f64 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/ResourceInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Resource/ResourceInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/CacheBustingWorker.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/CacheBustingWorker.php
new file mode 100644
index 000000000000..aac8f884e438
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/CacheBustingWorker.php
@@ -0,0 +1,78 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Factory\Worker;
+
+use Assetic\Asset\AssetInterface;
+
+/**
+ * Adds cache busting code
+ *
+ * @author Kris Wallsmith <kris.wallsmith@gmail.com>
+ */
+class CacheBustingWorker implements WorkerInterface
+{
+    const STRATEGY_CONTENT = 1;
+    const STRATEGY_MODIFICATION = 2;
+
+    private $strategy;
+
+    public function __construct($strategy = self::STRATEGY_CONTENT)
+    {
+        $this->strategy = $strategy;
+    }
+
+    public function process(AssetInterface $asset)
+    {
+        $hash = hash_init('sha1');
+
+        switch($this->strategy) {
+            case self::STRATEGY_MODIFICATION:
+                hash_update($hash, $asset->getLastModified());
+                break;
+            case self::STRATEGY_CONTENT:
+                hash_update($hash, $asset->dump());
+                break;
+        }
+
+        foreach ($asset as $i => $leaf) {
+            if ($sourcePath = $leaf->getSourcePath()) {
+                hash_update($hash, $sourcePath);
+            } else {
+                hash_update($hash, $i);
+            }
+        }
+
+        $hash = substr(hash_final($hash), 0, 7);
+        $url = $asset->getTargetPath();
+
+        $oldExt = pathinfo($url, PATHINFO_EXTENSION);
+        $newExt = '-'.$hash.'.'.$oldExt;
+
+        if (!$oldExt || 0 < preg_match('/'.preg_quote($newExt, '/').'$/', $url)) {
+            return;
+        }
+
+        $asset->setTargetPath(substr($url, 0, (strlen($oldExt) + 1) * -1).$newExt);
+    }
+
+    public function getStrategy()
+    {
+        return $this->strategy;
+    }
+
+    public function setStrategy($strategy)
+    {
+        $this->strategy = $strategy;
+
+        return $this;
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/EnsureFilterWorker.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/EnsureFilterWorker.php
index 189cab8b7e31..856e2ff3c28a 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/EnsureFilterWorker.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/EnsureFilterWorker.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/WorkerInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/WorkerInterface.php
index a1b7fff0f4e9..786058c4da2f 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/WorkerInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Factory/Worker/WorkerInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseCssFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseCssFilter.php
index c983f665d397..dd48fd1070da 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseCssFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseCssFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,12 +21,14 @@ abstract class BaseCssFilter implements FilterInterface
     /**
      * Filters all references -- url() and "@import" -- through a callable.
      *
-     * @param string $content  The CSS
-     * @param mixed  $callback A PHP callable
+     * @param string   $content  The CSS
+     * @param callable $callback A PHP callable
+     * @param integer  $limit
+     * @param integer  $count
      *
      * @return string The filtered CSS
      */
-    protected function filterReferences($content, $callback, $limit = -1, & $count = 0)
+    protected function filterReferences($content, $callback, $limit = -1, &$count = 0)
     {
         $content = $this->filterUrls($content, $callback, $limit, $count);
         $content = $this->filterImports($content, $callback, $limit, $count, false);
@@ -38,34 +40,34 @@ protected function filterReferences($content, $callback, $limit = -1, & $count =
     /**
      * Filters all CSS url()'s through a callable.
      *
-     * @param string  $content  The CSS
-     * @param mixed   $callback A PHP callable
-     * @param integer $limit    Limit the number of replacements
-     * @param integer $count    Will be populated with the count
+     * @param string   $content  The CSS
+     * @param callable $callback A PHP callable
+     * @param integer  $limit    Limit the number of replacements
+     * @param integer  $count    Will be populated with the count
      *
      * @return string The filtered CSS
      */
-    protected function filterUrls($content, $callback, $limit = -1, & $count = 0)
+    protected function filterUrls($content, $callback, $limit = -1, &$count = 0)
     {
-        return preg_replace_callback('/url\((["\']?)(?<url>.*?)(\\1)\)/', $callback, $content, $limit, $count);
+        return preg_replace_callback('/url\((["\']?)(?P<url>.*?)(\\1)\)/', $callback, $content, $limit, $count);
     }
 
     /**
      * Filters all CSS imports through a callable.
      *
-     * @param string  $content    The CSS
-     * @param mixed   $callback   A PHP callable
-     * @param integer $limit      Limit the number of replacements
-     * @param integer $count      Will be populated with the count
-     * @param Boolean $includeUrl Whether to include url() in the pattern
+     * @param string   $content    The CSS
+     * @param callable $callback   A PHP callable
+     * @param integer  $limit      Limit the number of replacements
+     * @param integer  $count      Will be populated with the count
+     * @param Boolean  $includeUrl Whether to include url() in the pattern
      *
      * @return string The filtered CSS
      */
-    protected function filterImports($content, $callback, $limit = -1, & $count = 0, $includeUrl = true)
+    protected function filterImports($content, $callback, $limit = -1, &$count = 0, $includeUrl = true)
     {
         $pattern = $includeUrl
-            ? '/@import (?:url\()?(\'|"|)(?<url>[^\'"\)\n\r]*)\1\)?;?/'
-            : '/@import (?!url\()(\'|"|)(?<url>[^\'"\)\n\r]*)\1;?/';
+            ? '/@import (?:url\()?(\'|"|)(?P<url>[^\'"\)\n\r]*)\1\)?;?/'
+            : '/@import (?!url\()(\'|"|)(?P<url>[^\'"\)\n\r]*)\1;?/';
 
         return preg_replace_callback($pattern, $callback, $content, $limit, $count);
     }
@@ -73,15 +75,15 @@ protected function filterImports($content, $callback, $limit = -1, & $count = 0,
     /**
      * Filters all IE filters (AlphaImageLoader filter) through a callable.
      *
-     * @param string  $content  The CSS
-     * @param mixed   $callback A PHP callable
-     * @param integer $limit    Limit the number of replacements
-     * @param integer $count    Will be populated with the count
+     * @param string   $content  The CSS
+     * @param callable $callback A PHP callable
+     * @param integer  $limit    Limit the number of replacements
+     * @param integer  $count    Will be populated with the count
      *
      * @return string The filtered CSS
      */
-    protected function filterIEFilters($content, $callback, $limit = -1, & $count = 0)
+    protected function filterIEFilters($content, $callback, $limit = -1, &$count = 0)
     {
-        return preg_replace_callback('/src=(["\']?)(?<url>.*?)\\1/', $callback, $content, $limit, $count);
+        return preg_replace_callback('/src=(["\']?)(?P<url>.*?)\\1/', $callback, $content, $limit, $count);
     }
 }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseNodeFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseNodeFilter.php
new file mode 100644
index 000000000000..1d86add9447a
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseNodeFilter.php
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Filter;
+
+abstract class BaseNodeFilter extends BaseProcessFilter
+{
+    private $nodePaths = array();
+
+    public function getNodePaths()
+    {
+        return $this->nodePaths;
+    }
+
+    public function setNodePaths(array $nodePaths)
+    {
+        $this->nodePaths = $nodePaths;
+    }
+
+    public function addNodePath($nodePath)
+    {
+        $this->nodePaths[] = $nodePath;
+    }
+
+    protected function createProcessBuilder(array $arguments = array())
+    {
+        $pb = parent::createProcessBuilder($arguments);
+
+        if ($this->nodePaths) {
+            $pb->setEnv('NODE_PATH', implode(':', $this->nodePaths));
+        }
+
+        return $pb;
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseProcessFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseProcessFilter.php
new file mode 100644
index 000000000000..684791663163
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/BaseProcessFilter.php
@@ -0,0 +1,51 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Filter;
+
+use Assetic\Filter\FilterInterface;
+use Symfony\Component\Process\ProcessBuilder;
+
+/**
+ * An external process based filter which provides a way to set a timeout on the process.
+ */
+abstract class BaseProcessFilter implements FilterInterface
+{
+    private $timeout;
+
+    /**
+     * Set the process timeout.
+     *
+     * @param int $timeout The timeout for the process
+     */
+    public function setTimeout($timeout)
+    {
+        $this->timeout = $timeout;
+    }
+
+    /**
+     * Creates a new process builder.
+     *
+     * @param array $arguments An optional array of arguments
+     *
+     * @return ProcessBuilder A new process builder
+     */
+    protected function createProcessBuilder(array $arguments = array())
+    {
+        $pb = new ProcessBuilder($arguments);
+
+        if (null !== $this->timeout) {
+            $pb->setTimeout($this->timeout);
+        }
+
+        return $pb;
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CallablesFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CallablesFilter.php
index 323d11c927e4..25413b0284d0 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CallablesFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CallablesFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -23,6 +23,10 @@ class CallablesFilter implements FilterInterface
     private $loader;
     private $dumper;
 
+    /**
+     * @param callable|null $loader
+     * @param callable|null $dumper
+     */
     public function __construct($loader = null, $dumper = null)
     {
         $this->loader = $loader;
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CoffeeScriptFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CoffeeScriptFilter.php
index 13a54e7a65f4..6e6c95a934a1 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CoffeeScriptFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CoffeeScriptFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Compiles CoffeeScript into Javascript.
@@ -21,18 +20,18 @@
  * @link http://coffeescript.org/
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-class CoffeeScriptFilter implements FilterInterface
+class CoffeeScriptFilter extends BaseNodeFilter
 {
-    private $coffeePath;
-    private $nodePath;
+    private $coffeeBin;
+    private $nodeBin;
 
     // coffee options
     private $bare;
 
-    public function __construct($coffeePath = '/usr/bin/coffee', $nodePath = '/usr/bin/node')
+    public function __construct($coffeeBin = '/usr/bin/coffee', $nodeBin = null)
     {
-        $this->coffeePath = $coffeePath;
-        $this->nodePath = $nodePath;
+        $this->coffeeBin = $coffeeBin;
+        $this->nodeBin = $nodeBin;
     }
 
     public function setBare($bare)
@@ -45,11 +44,11 @@ public function filterLoad(AssetInterface $asset)
         $input = tempnam(sys_get_temp_dir(), 'assetic_coffeescript');
         file_put_contents($input, $asset->getContent());
 
-        $pb = new ProcessBuilder(array(
-            $this->nodePath,
-            $this->coffeePath,
-            '-cp',
-        ));
+        $pb = $this->createProcessBuilder($this->nodeBin
+            ? array($this->nodeBin, $this->coffeeBin)
+            : array($this->coffeeBin));
+
+        $pb->add('-cp');
 
         if ($this->bare) {
             $pb->add('--bare');
@@ -60,7 +59,7 @@ public function filterLoad(AssetInterface $asset)
         $code = $proc->run();
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php
index b9abd749ecba..d5ae6d0242a3 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,8 +13,6 @@
 
 use Assetic\Exception\FilterException;
 use Assetic\Asset\AssetInterface;
-use Assetic\Filter\FilterInterface;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Loads Compass files.
@@ -22,7 +20,7 @@
  * @link http://compass-style.org/
  * @author Maxime Thirouin <maxime.thirouin@gmail.com>
  */
-class CompassFilter implements FilterInterface
+class CompassFilter extends BaseProcessFilter
 {
     private $compassPath;
     private $rubyPath;
@@ -42,12 +40,15 @@ class CompassFilter implements FilterInterface
     private $noLineComments;
     private $imagesDir;
     private $javascriptsDir;
+    private $fontsDir;
 
     // compass configuration file options
     private $plugins = array();
     private $loadPaths = array();
     private $httpPath;
     private $httpImagesPath;
+    private $httpFontsPath;
+    private $httpGeneratedImagesPath;
     private $generatedImagesPath;
     private $httpJavascriptsPath;
     private $homeEnv = true;
@@ -125,6 +126,11 @@ public function setJavascriptsDir($javascriptsDir)
         $this->javascriptsDir = $javascriptsDir;
     }
 
+    public function setFontsDir($fontsDir)
+    {
+        $this->fontsDir = $fontsDir;
+    }
+
     // compass configuration file options setters
     public function setPlugins(array $plugins)
     {
@@ -156,6 +162,16 @@ public function setHttpImagesPath($httpImagesPath)
         $this->httpImagesPath = $httpImagesPath;
     }
 
+    public function setHttpFontsPath($httpFontsPath)
+    {
+        $this->httpFontsPath = $httpFontsPath;
+    }
+
+    public function setHttpGeneratedImagesPath($httpGeneratedImagesPath)
+    {
+        $this->httpGeneratedImagesPath = $httpGeneratedImagesPath;
+    }
+
     public function setGeneratedImagesPath($generatedImagesPath)
     {
         $this->generatedImagesPath = $generatedImagesPath;
@@ -193,7 +209,7 @@ public function filterLoad(AssetInterface $asset)
             $compassProcessArgs = array_merge(explode(' ', $this->rubyPath), $compassProcessArgs);
         }
 
-        $pb = new ProcessBuilder($compassProcessArgs);
+        $pb = $this->createProcessBuilder($compassProcessArgs);
         $pb->inheritEnvironmentVariables();
 
         if ($this->force) {
@@ -258,6 +274,14 @@ public function filterLoad(AssetInterface $asset)
             $optionsConfig['http_images_path'] = $this->httpImagesPath;
         }
 
+        if ($this->httpFontsPath) {
+            $optionsConfig['http_fonts_path'] = $this->httpFontsPath;
+        }
+
+        if ($this->httpGeneratedImagesPath) {
+            $optionsConfig['http_generated_images_path'] = $this->httpGeneratedImagesPath;
+        }
+
         if ($this->generatedImagesPath) {
             $optionsConfig['generated_images_path'] = $this->generatedImagesPath;
         }
@@ -266,6 +290,10 @@ public function filterLoad(AssetInterface $asset)
             $optionsConfig['http_javascripts_path'] = $this->httpJavascriptsPath;
         }
 
+        if ($this->fontsDir) {
+            $optionsConfig['fonts_dir'] = $this->fontsDir;
+        }
+
         // options in configuration file
         if (count($optionsConfig)) {
             $config = array();
@@ -322,7 +350,7 @@ public function filterLoad(AssetInterface $asset)
         $proc = $pb->getProcess();
         $code = $proc->run();
 
-        if (0 < $code) {
+        if (0 !== $code) {
             unlink($input);
             if (isset($configFile)) {
                 unlink($configFile);
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssEmbedFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssEmbedFilter.php
index 7e8a80b1584e..34bd8827e993 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssEmbedFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssEmbedFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * CSSEmbed filter
@@ -21,7 +20,7 @@
  * @link https://github.com/nzakas/cssembed
  * @author Maxime Thirouin <maxime.thirouin@gmail.com>
  */
-class CssEmbedFilter implements FilterInterface
+class CssEmbedFilter extends BaseProcessFilter
 {
     private $jarPath;
     private $javaPath;
@@ -80,7 +79,7 @@ public function filterLoad(AssetInterface $asset)
 
     public function filterDump(AssetInterface $asset)
     {
-        $pb = new ProcessBuilder(array(
+        $pb = $this->createProcessBuilder(array(
             $this->javaPath,
             '-jar',
             $this->jarPath,
@@ -130,7 +129,7 @@ public function filterDump(AssetInterface $asset)
         $code = $proc->run();
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssImportFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssImportFilter.php
index 7e5c737a7fef..6bddfbee1496 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssImportFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssImportFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssMinFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssMinFilter.php
index cc0167239d70..e63395863652 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssMinFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssMinFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssRewriteFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssRewriteFilter.php
index 1fc458e844de..8d612c14f6a0 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssRewriteFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/CssRewriteFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -73,7 +73,7 @@ public function filterDump(AssetInterface $asset)
                 return $matches[0];
             }
 
-            if ('/' == $matches['url'][0]) {
+            if (isset($matches['url'][0]) && '/' == $matches['url'][0]) {
                 // root relative
                 return str_replace($matches['url'], $host.$matches['url'], $matches[0]);
             }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/DartFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/DartFilter.php
new file mode 100644
index 000000000000..95055816b2c8
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/DartFilter.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Filter;
+
+use Assetic\Asset\AssetInterface;
+use Assetic\Exception\FilterException;
+
+/**
+ * Compiles Dart into Javascript.
+ *
+ * @link http://dartlang.org/
+ */
+class DartFilter extends BaseProcessFilter
+{
+    private $dartBin;
+
+    public function __construct($dartBin = '/usr/bin/dart2js')
+    {
+        $this->dartBin = $dartBin;
+    }
+
+    public function filterLoad(AssetInterface $asset)
+    {
+        $input  = tempnam(sys_get_temp_dir(), 'assetic_dart');
+        $output = tempnam(sys_get_temp_dir(), 'assetic_dart');
+
+        file_put_contents($input, $asset->getContent());
+
+        $pb = $this->createProcessBuilder()
+            ->add($this->dartBin)
+            ->add('-o'.$output)
+            ->add($input)
+        ;
+
+        $proc = $pb->getProcess();
+        $code = $proc->run();
+        unlink($input);
+
+        if (0 !== $code) {
+            if (file_exists($output)) {
+                unlink($output);
+            }
+
+            throw FilterException::fromProcess($proc)->setInput($asset->getContent());
+        }
+
+        if (!file_exists($output)) {
+            throw new \RuntimeException('Error creating output file.');
+        }
+
+        $asset->setContent(file_get_contents($output));
+        unlink($output);
+    }
+
+    public function filterDump(AssetInterface $asset)
+    {
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterCollection.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterCollection.php
index 1ee743dcdec3..9dc28cb20b62 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterCollection.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterCollection.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterInterface.php
index 7bd1a7e3a14d..17ff87d99ecc 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/BaseCompilerFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/BaseCompilerFilter.php
index 61cc6bd06303..59e062e2f8b4 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/BaseCompilerFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/BaseCompilerFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -40,6 +40,7 @@ abstract class BaseCompilerFilter implements FilterInterface
     const LANGUAGE_ECMASCRIPT5 = 'ECMASCRIPT5';
     const LANGUAGE_ECMASCRIPT5_STRICT = 'ECMASCRIPT5_STRICT';
 
+    protected $timeout;
     protected $compilationLevel;
     protected $jsExterns;
     protected $externsUrl;
@@ -49,6 +50,11 @@ abstract class BaseCompilerFilter implements FilterInterface
     protected $warningLevel;
     protected $language;
 
+    public function setTimeout($timeout)
+    {
+        $this->timeout = $timeout;
+    }
+
     public function setCompilationLevel($compilationLevel)
     {
         $this->compilationLevel = $compilationLevel;
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/CompilerApiFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/CompilerApiFilter.php
index 0aebe615f75b..5ea76812ef3c 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/CompilerApiFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/CompilerApiFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,6 +21,19 @@
  */
 class CompilerApiFilter extends BaseCompilerFilter
 {
+    private $proxy;
+    private $proxyFullUri;
+
+    public function setProxy($proxy)
+    {
+        $this->proxy = $proxy;
+    }
+
+    public function setProxyFullUri($proxyFullUri)
+    {
+        $this->proxyFullUri = $proxyFullUri;
+    }
+
     public function filterDump(AssetInterface $asset)
     {
         $query = array(
@@ -62,16 +75,24 @@ public function filterDump(AssetInterface $asset)
         }
 
         if (preg_match('/1|yes|on|true/i', ini_get('allow_url_fopen'))) {
-            $context = stream_context_create(array('http' => array(
+            $contextOptions = array('http' => array(
                 'method'  => 'POST',
                 'header'  => 'Content-Type: application/x-www-form-urlencoded',
                 'content' => http_build_query($query),
-            )));
+            ));
+            if (null !== $this->timeout) {
+                $contextOptions['http']['timeout'] = $this->timeout;
+            }
+            if ($this->proxy) {
+                $contextOptions['http']['proxy'] = $this->proxy;
+                $contextOptions['http']['request_fulluri'] = (Boolean) $this->proxyFullUri;
+            }
+            $context = stream_context_create($contextOptions);
 
             $response = file_get_contents('http://closure-compiler.appspot.com/compile', false, $context);
             $data = json_decode($response);
 
-         } elseif (defined('CURLOPT_POST') && !in_array('curl_init', explode(',', ini_get('disable_functions')))) {
+        } elseif (defined('CURLOPT_POST') && !in_array('curl_init', explode(',', ini_get('disable_functions')))) {
 
             $ch = curl_init('http://closure-compiler.appspot.com/compile');
             curl_setopt($ch, CURLOPT_POST, true);
@@ -79,6 +100,13 @@ public function filterDump(AssetInterface $asset)
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
             curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
             curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
+            if (null !== $this->timeout) {
+                curl_setopt($curl, CURLOPT_TIMEOUT, $this->timeout);
+            }
+            if ($this->proxy) {
+                curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
+                curl_setopt($ch, CURLOPT_PROXY, $this->proxy);
+            }
             $response = curl_exec($ch);
             curl_close($ch);
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/CompilerJarFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/CompilerJarFilter.php
index 546ecee6d11a..d4a1e168cce7 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/CompilerJarFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GoogleClosure/CompilerJarFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -42,6 +42,10 @@ public function filterDump(AssetInterface $asset)
             $this->jarPath,
         ));
 
+        if (null !== $this->timeout) {
+            $pb->setTimeout($this->timeout);
+        }
+
         if (null !== $this->compilationLevel) {
             $pb->add('--compilation_level')->add($this->compilationLevel);
         }
@@ -85,7 +89,7 @@ public function filterDump(AssetInterface $asset)
         $code = $proc->run();
         array_map('unlink', $cleanup);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GssFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GssFilter.php
index 895b3a20332e..3c0b84fc4cf1 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GssFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/GssFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Filter for the Google Closure Stylesheets Compiler JAR.
@@ -21,7 +20,7 @@
  * @link http://code.google.com/p/closure-stylesheets/
  * @author Matthias Krauser <matthias@krauser.eu>
  */
-class GssFilter implements FilterInterface
+class GssFilter extends BaseProcessFilter
 {
     private $jarPath;
     private $javaPath;
@@ -84,7 +83,7 @@ public function filterLoad(AssetInterface $asset)
     {
         $cleanup = array();
 
-        $pb = new ProcessBuilder(array(
+        $pb = $this->createProcessBuilder(array(
             $this->javaPath,
             '-jar',
             $this->jarPath,
@@ -129,7 +128,7 @@ public function filterLoad(AssetInterface $asset)
         $code = $proc->run();
         array_map('unlink', $cleanup);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/HandlebarsFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/HandlebarsFilter.php
new file mode 100644
index 000000000000..e16e85836b77
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/HandlebarsFilter.php
@@ -0,0 +1,102 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Filter;
+
+use Assetic\Asset\AssetInterface;
+use Assetic\Exception\FilterException;
+
+/**
+ * Compiles Handlebars templates into Javascript.
+ *
+ * @link http://handlebarsjs.com/
+ * @author Keyvan Akbary <keyvan@funddy.com>
+ */
+class HandlebarsFilter extends BaseNodeFilter
+{
+    private $handlebarsBin;
+    private $nodeBin;
+
+    private $minimize = false;
+    private $simple = false;
+
+    public function __construct($handlebarsBin = '/usr/bin/handlebars', $nodeBin = null)
+    {
+        $this->handlebarsBin = $handlebarsBin;
+        $this->nodeBin = $nodeBin;
+    }
+
+    public function setMinimize($minimize)
+    {
+        $this->minimize = $minimize;
+    }
+
+    public function setSimple($simple)
+    {
+        $this->simple = $simple;
+    }
+
+    public function filterLoad(AssetInterface $asset)
+    {
+        $pb = $this->createProcessBuilder($this->nodeBin
+            ? array($this->nodeBin, $this->handlebarsBin)
+            : array($this->handlebarsBin));
+
+        $templateName = basename($asset->getSourcePath());
+
+        $inputDirPath = sys_get_temp_dir().DIRECTORY_SEPARATOR.uniqid('input_dir');
+        $inputPath = $inputDirPath.DIRECTORY_SEPARATOR.$templateName;
+        $outputPath = tempnam(sys_get_temp_dir(), 'output');
+
+        mkdir($inputDirPath);
+        file_put_contents($inputPath, $asset->getContent());
+
+        $pb->add($inputPath)->add('-f')->add($outputPath);
+
+        if ($this->minimize) {
+            $pb->add('--min');
+        }
+
+        if ($this->simple) {
+            $pb->add('--simple');
+        }
+
+        $process = $pb->getProcess();
+        $returnCode = $process->run();
+
+        unlink($inputPath);
+        rmdir($inputDirPath);
+
+        if (127 === $returnCode) {
+            throw new \RuntimeException('Path to node executable could not be resolved.');
+        }
+
+        if (0 !== $returnCode) {
+            if (file_exists($outputPath)) {
+                unlink($outputPath);
+            }
+            throw FilterException::fromProcess($process)->setInput($asset->getContent());
+        }
+
+        if (!file_exists($outputPath)) {
+            throw new \RuntimeException('Error creating output file.');
+        }
+
+        $compiledJs = file_get_contents($outputPath);
+        unlink($outputPath);
+
+        $asset->setContent($compiledJs);
+    }
+
+    public function filterDump(AssetInterface $asset)
+    {
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/HashableInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/HashableInterface.php
index da68a0bad259..9442fdba5f60 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/HashableInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/HashableInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinFilter.php
index 1a8a7a79e362..44c08afae5c3 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinPlusFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinPlusFilter.php
index f61d446ca347..21dc48e748ef 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinPlusFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinPlusFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JpegoptimFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JpegoptimFilter.php
index 6b97e6ce2258..68fac7ce0130 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JpegoptimFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JpegoptimFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Runs assets through Jpegoptim.
@@ -21,7 +20,7 @@
  * @link   http://www.kokkonen.net/tjko/projects.html
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-class JpegoptimFilter implements FilterInterface
+class JpegoptimFilter extends BaseProcessFilter
 {
     private $jpegoptimBin;
     private $stripAll;
@@ -53,7 +52,7 @@ public function filterLoad(AssetInterface $asset)
 
     public function filterDump(AssetInterface $asset)
     {
-        $pb = new ProcessBuilder(array($this->jpegoptimBin));
+        $pb = $this->createProcessBuilder(array($this->jpegoptimBin));
 
         if ($this->stripAll) {
             $pb->add('--strip-all');
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JpegtranFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JpegtranFilter.php
index 95a3547662ec..c495ad12206f 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JpegtranFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/JpegtranFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Runs assets through jpegtran.
@@ -21,7 +20,7 @@
  * @link http://jpegclub.org/jpegtran/
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-class JpegtranFilter implements FilterInterface
+class JpegtranFilter extends BaseProcessFilter
 {
     const COPY_NONE = 'none';
     const COPY_COMMENTS = 'comments';
@@ -69,7 +68,7 @@ public function filterLoad(AssetInterface $asset)
 
     public function filterDump(AssetInterface $asset)
     {
-        $pb = new ProcessBuilder(array($this->jpegtranBin));
+        $pb = $this->createProcessBuilder(array($this->jpegtranBin));
 
         if ($this->optimize) {
             $pb->add('-optimize');
@@ -94,7 +93,7 @@ public function filterDump(AssetInterface $asset)
         $code = $proc->run();
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessFilter.php
index cd7e32c67223..d247ddd42e70 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Loads LESS files.
@@ -21,12 +20,20 @@
  * @link http://lesscss.org/
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-class LessFilter implements FilterInterface
+class LessFilter extends BaseNodeFilter
 {
     private $nodeBin;
-    private $nodePaths;
     private $compress;
 
+    /**
+     * Load Paths
+     *
+     * A list of paths which less will search for includes.
+     *
+     * @var array
+     */
+    protected $loadPaths = array();
+
     /**
      * Constructor.
      *
@@ -36,7 +43,7 @@ class LessFilter implements FilterInterface
     public function __construct($nodeBin = '/usr/bin/node', array $nodePaths = array())
     {
         $this->nodeBin = $nodeBin;
-        $this->nodePaths = $nodePaths;
+        $this->setNodePaths($nodePaths);
     }
 
     public function setCompress($compress)
@@ -44,6 +51,16 @@ public function setCompress($compress)
         $this->compress = $compress;
     }
 
+    /**
+     * Adds a path where less will search for includes
+     *
+     * @param string $path Load path (absolute)
+     */
+    public function addLoadPath($path)
+    {
+        $this->loadPaths[] = $path;
+    }
+
     public function filterLoad(AssetInterface $asset)
     {
         static $format = <<<'EOF'
@@ -75,6 +92,9 @@ public function filterLoad(AssetInterface $asset)
             $parserOptions['paths'] = array(dirname($root.'/'.$path));
             $parserOptions['filename'] = basename($path);
         }
+        foreach ($this->loadPaths as $loadPath) {
+            $parserOptions['paths'][] = $loadPath;
+        }
 
         // tree options
         $treeOptions = array();
@@ -82,14 +102,9 @@ public function filterLoad(AssetInterface $asset)
             $treeOptions['compress'] = $this->compress;
         }
 
-        $pb = new ProcessBuilder();
+        $pb = $this->createProcessBuilder();
         $pb->inheritEnvironmentVariables();
 
-        // node.js configuration
-        if (0 < count($this->nodePaths)) {
-            $pb->setEnv('NODE_PATH', implode(':', $this->nodePaths));
-        }
-
         $pb->add($this->nodeBin)->add($input = tempnam(sys_get_temp_dir(), 'assetic_less'));
         file_put_contents($input, sprintf($format,
             json_encode($parserOptions),
@@ -101,7 +116,7 @@ public function filterLoad(AssetInterface $asset)
         $code = $proc->run();
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessphpFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessphpFilter.php
index 590f041beaa4..d87ac16373a6 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessphpFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessphpFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -26,12 +26,47 @@
 class LessphpFilter implements FilterInterface
 {
     private $presets = array();
+    private $formatter;
+    private $preserveComments;
+
+    /**
+     * Lessphp Load Paths
+     *
+     * @var array
+     */
+    protected $loadPaths = array();
+
+    /**
+     * Adds a load path to the paths used by lessphp
+     *
+     * @param string $path Load Path
+     */
+    public function addLoadPath($path)
+    {
+        $this->loadPaths[] = $path;
+    }
 
     public function setPresets(array $presets)
     {
         $this->presets = $presets;
     }
 
+    /**
+     * @param string $formatter One of "lessjs", "compressed", or "classic".
+     */
+    public function setFormatter($formatter)
+    {
+        $this->formatter = $formatter;
+    }
+
+    /**
+     * @param boolean $preserveComments
+     */
+    public function setPreserveComments($preserveComments)
+    {
+        $this->preserveComments = $preserveComments;
+    }
+
     public function filterLoad(AssetInterface $asset)
     {
         $root = $asset->getSourceRoot();
@@ -42,6 +77,18 @@ public function filterLoad(AssetInterface $asset)
             $lc->importDir = dirname($root.'/'.$path);
         }
 
+        foreach ($this->loadPaths as $loadPath) {
+            $lc->addImportDir($loadPath);
+        }
+
+        if ($this->formatter) {
+            $lc->setFormatter($this->formatter);
+        }
+
+        if (null !== $this->preserveComments) {
+            $lc->setPreserveComments($this->preserveComments);
+        }
+
         $asset->setContent($lc->parse($asset->getContent(), $this->presets));
     }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/OptiPngFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/OptiPngFilter.php
index 19da807cdeb0..4f7abcf1236a 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/OptiPngFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/OptiPngFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Runs assets through OptiPNG.
@@ -21,7 +20,7 @@
  * @link   http://optipng.sourceforge.net/
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-class OptiPngFilter implements FilterInterface
+class OptiPngFilter extends BaseProcessFilter
 {
     private $optipngBin;
     private $level;
@@ -47,7 +46,7 @@ public function filterLoad(AssetInterface $asset)
 
     public function filterDump(AssetInterface $asset)
     {
-        $pb = new ProcessBuilder(array($this->optipngBin));
+        $pb = $this->createProcessBuilder(array($this->optipngBin));
 
         if (null !== $this->level) {
             $pb->add('-o')->add($this->level);
@@ -62,7 +61,7 @@ public function filterDump(AssetInterface $asset)
         $proc = $pb->getProcess();
         $code = $proc->run();
 
-        if (0 < $code) {
+        if (0 !== $code) {
             unlink($input);
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackagerFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackagerFilter.php
index c3a331b13123..6029833bfb8e 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackagerFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackagerFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackerFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackerFilter.php
index 4fe9aa9ccfce..3fd41eacab03 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackerFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackerFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PhpCssEmbedFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PhpCssEmbedFilter.php
index 38838477d839..8185beb79aa2 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PhpCssEmbedFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PhpCssEmbedFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,8 +11,8 @@
 
 namespace Assetic\Filter;
 
-use CssEmbed\CssEmbed;
 use Assetic\Asset\AssetInterface;
+use CssEmbed\CssEmbed;
 
 /**
  * A filter that embed url directly into css
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PngoutFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PngoutFilter.php
index 8e5169a9a14b..571945f434df 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PngoutFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PngoutFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Runs assets through pngout.
@@ -21,7 +20,7 @@
  * @link http://advsys.net/ken/utils.htm#pngout
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-class PngoutFilter implements FilterInterface
+class PngoutFilter extends BaseProcessFilter
 {
     // -c#
     const COLOR_GREY       = '0';
@@ -87,7 +86,7 @@ public function filterLoad(AssetInterface $asset)
 
     public function filterDump(AssetInterface $asset)
     {
-        $pb = new ProcessBuilder(array($this->pngoutBin));
+        $pb = $this->createProcessBuilder(array($this->pngoutBin));
 
         if (null !== $this->color) {
             $pb->add('-c'.$this->color);
@@ -115,7 +114,7 @@ public function filterDump(AssetInterface $asset)
         $proc = $pb->getProcess();
         $code = $proc->run();
 
-        if (0 < $code) {
+        if (0 !== $code) {
             unlink($input);
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/SassFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/SassFilter.php
index 11fd88e19cc6..bba8f98e6f8e 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/SassFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/SassFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,9 +12,8 @@
 namespace Assetic\Filter\Sass;
 
 use Assetic\Asset\AssetInterface;
-use Assetic\Filter\FilterInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
+use Assetic\Filter\BaseProcessFilter;
 
 /**
  * Loads SASS files.
@@ -22,7 +21,7 @@
  * @link http://sass-lang.com/
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-class SassFilter implements FilterInterface
+class SassFilter extends BaseProcessFilter
 {
     const STYLE_NESTED     = 'nested';
     const STYLE_EXPANDED   = 'expanded';
@@ -106,7 +105,7 @@ public function filterLoad(AssetInterface $asset)
             $sassProcessArgs = array_merge(explode(' ', $this->rubyPath), $sassProcessArgs);
         }
 
-        $pb = new ProcessBuilder($sassProcessArgs);
+        $pb = $this->createProcessBuilder($sassProcessArgs);
 
         $root = $asset->getSourceRoot();
         $path = $asset->getSourcePath();
@@ -163,7 +162,7 @@ public function filterLoad(AssetInterface $asset)
         $code = $proc->run();
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/ScssFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/ScssFilter.php
index 452c6d22f17a..3906bf57764b 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/ScssFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/ScssFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/ScssphpFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/ScssphpFilter.php
index 362262d96ffa..dccf945749a9 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/ScssphpFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/ScssphpFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -24,19 +24,49 @@
  */
 class ScssphpFilter implements FilterInterface
 {
+    private $compass = false;
+
+    private $importPaths = array();
+
+    public function enableCompass($enable = true)
+    {
+        $this->compass = (Boolean) $enable;
+    }
+
+    public function isCompassEnabled()
+    {
+        return $this->compass;
+    }
+
     public function filterLoad(AssetInterface $asset)
     {
         $root = $asset->getSourceRoot();
         $path = $asset->getSourcePath();
 
         $lc = new \scssc();
+        if ($this->compass) {
+            new \scss_compass($lc);
+        }
         if ($root && $path) {
             $lc->addImportPath(dirname($root.'/'.$path));
         }
+        foreach ($this->importPaths as $path) {
+            $lc->addImportPath($path);
+        }
 
         $asset->setContent($lc->compile($asset->getContent()));
     }
 
+    public function setImportPaths(array $paths)
+    {
+        $this->importPaths = $paths;
+    }
+
+    public function addImportPath($path)
+    {
+        $this->importPaths[] = $path;
+    }
+
     public function filterDump(AssetInterface $asset)
     {
     }
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/SprocketsFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/SprocketsFilter.php
index 29bc71c8fab0..8f0d8d96bbd7 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/SprocketsFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/SprocketsFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Runs assets through Sprockets.
@@ -25,7 +24,7 @@
  *
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-class SprocketsFilter implements FilterInterface
+class SprocketsFilter extends BaseProcessFilter
 {
     private $sprocketsLib;
     private $rubyBin;
@@ -102,7 +101,7 @@ public function filterLoad(AssetInterface $asset)
             $more
         ));
 
-        $pb = new ProcessBuilder(array(
+        $pb = $this->createProcessBuilder(array(
             $this->rubyBin,
             $input,
         ));
@@ -112,7 +111,7 @@ public function filterLoad(AssetInterface $asset)
         unlink($tmpAsset);
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/StylusFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/StylusFilter.php
index 708e44bff16d..f454b563e102 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/StylusFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/StylusFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * Loads STYL files.
@@ -21,10 +20,9 @@
  * @link http://learnboost.github.com/stylus/
  * @author Konstantin Kudryashov <ever.zet@gmail.com>
  */
-class StylusFilter implements FilterInterface
+class StylusFilter extends BaseNodeFilter
 {
     private $nodeBin;
-    private $nodePaths;
     private $compress;
 
     /**
@@ -36,7 +34,7 @@ class StylusFilter implements FilterInterface
     public function __construct($nodeBin = '/usr/bin/node', array $nodePaths = array())
     {
         $this->nodeBin = $nodeBin;
-        $this->nodePaths = $nodePaths;
+        $this->setNodePaths($nodePaths);
     }
 
     /**
@@ -83,14 +81,9 @@ public function filterLoad(AssetInterface $asset)
             $parserOptions['compress'] = $this->compress;
         }
 
-        $pb = new ProcessBuilder();
+        $pb = $this->createProcessBuilder();
         $pb->inheritEnvironmentVariables();
 
-        // node.js configuration
-        if (0 < count($this->nodePaths)) {
-            $pb->setEnv('NODE_PATH', implode(':', $this->nodePaths));
-        }
-
         $pb->add($this->nodeBin)->add($input = tempnam(sys_get_temp_dir(), 'assetic_stylus'));
         file_put_contents($input, sprintf($format,
             json_encode($asset->getContent()),
@@ -101,7 +94,7 @@ public function filterLoad(AssetInterface $asset)
         $code = $proc->run();
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/TypeScriptFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/TypeScriptFilter.php
new file mode 100644
index 000000000000..a2896d36a291
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/TypeScriptFilter.php
@@ -0,0 +1,76 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Filter;
+
+use Assetic\Asset\AssetInterface;
+use Assetic\Exception\FilterException;
+
+/**
+ * Compiles TypeScript into JavaScript.
+ *
+ * @link http://www.typescriptlang.org/
+ * @author Jarrod Nettles <jarrod.nettles@icloud.com>
+ */
+class TypeScriptFilter extends BaseNodeFilter
+{
+    private $tscBin;
+    private $nodeBin;
+
+    public function __construct($tscBin = '/usr/bin/tsc', $nodeBin = null)
+    {
+        $this->tscBin = $tscBin;
+        $this->nodeBin = $nodeBin;
+    }
+
+    public function filterLoad(AssetInterface $asset)
+    {
+        $pb = $this->createProcessBuilder($this->nodeBin
+            ? array($this->nodeBin, $this->tscBin)
+            : array($this->tscBin));
+
+        $templateName = basename($asset->getSourcePath());
+
+        $inputDirPath = sys_get_temp_dir().DIRECTORY_SEPARATOR.uniqid('input_dir');
+        $inputPath = $inputDirPath.DIRECTORY_SEPARATOR.$templateName.'.ts';
+        $outputPath = tempnam(sys_get_temp_dir(), 'output');
+
+        mkdir($inputDirPath);
+        file_put_contents($inputPath, $asset->getContent());
+
+        $pb->add($inputPath)->add('--out')->add($outputPath);
+
+        $proc = $pb->getProcess();
+        $code = $proc->run();
+        unlink($inputPath);
+        rmdir($inputDirPath);
+
+        if (0 !== $code) {
+            if (file_exists($outputPath)) {
+                unlink($outputPath);
+            }
+            throw FilterException::fromProcess($proc)->setInput($asset->getContent());
+        }
+
+        if (!file_exists($outputPath)) {
+            throw new \RuntimeException('Error creating output file.');
+        }
+
+        $compiledJs = file_get_contents($outputPath);
+        unlink($outputPath);
+
+        $asset->setContent($compiledJs);
+    }
+
+    public function filterDump(AssetInterface $asset)
+    {
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyCssFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyCssFilter.php
new file mode 100644
index 000000000000..3fd6c4a61c57
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyCssFilter.php
@@ -0,0 +1,119 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Filter;
+
+use Assetic\Asset\AssetInterface;
+use Assetic\Exception\FilterException;
+
+/**
+ * UglifyCss filter.
+ *
+ * @link https://github.com/fmarcia/UglifyCSS
+ * @author Franck Marcia <franck.marcia@gmail.com>
+ */
+class UglifyCssFilter extends BaseNodeFilter
+{
+    private $uglifycssBin;
+    private $nodeBin;
+
+    private $expandVars;
+    private $uglyComments;
+    private $cuteComments;
+
+    /**
+     * @param string $uglifycssBin Absolute path to the uglifycss executable
+     * @param string $nodeBin       Absolute path to the folder containg node.js executable
+     */
+    public function __construct($uglifycssBin = '/usr/bin/uglifycss', $nodeBin = null)
+    {
+        $this->uglifycssBin = $uglifycssBin;
+        $this->nodeBin = $nodeBin;
+    }
+
+    /**
+     * Expand variables
+     * @param bool $expandVars True to enable
+     */
+    public function setExpandVars($expandVars)
+    {
+        $this->expandVars = $expandVars;
+    }
+
+    /**
+     * Remove newlines within preserved comments
+     * @param bool $uglyComments True to enable
+     */
+    public function setUglyComments($uglyComments)
+    {
+        $this->uglyComments = $uglyComments;
+    }
+
+    /**
+     * Preserve newlines within and around preserved comments
+     * @param bool $cuteComments True to enable
+     */
+    public function setCuteComments($cuteComments)
+    {
+        $this->cuteComments = $cuteComments;
+    }
+
+    /**
+     * @see Assetic\Filter\FilterInterface::filterLoad()
+     */
+    public function filterLoad(AssetInterface $asset)
+    {
+    }
+
+    /**
+     * Run the asset through UglifyJs
+     *
+     * @see Assetic\Filter\FilterInterface::filterDump()
+     */
+    public function filterDump(AssetInterface $asset)
+    {
+        $pb = $this->createProcessBuilder($this->nodeBin
+            ? array($this->nodeBin, $this->uglifycssBin)
+            : array($this->uglifycssBin));
+
+        if ($this->expandVars) {
+            $pb->add('--expand-vars');
+        }
+
+        if ($this->uglyComments) {
+            $pb->add('--ugly-comments');
+        }
+
+        if ($this->cuteComments) {
+            $pb->add('--cute-comments');
+        }
+
+        // input and output files
+        $input = tempnam(sys_get_temp_dir(), 'input');
+
+        file_put_contents($input, $asset->getContent());
+        $pb->add($input);
+
+        $proc = $pb->getProcess();
+        $code = $proc->run();
+        unlink($input);
+
+        if (127 === $code) {
+            throw new \RuntimeException('Path to node executable could not be resolved.');
+        }
+
+        if (0 !== $code) {
+            throw FilterException::fromProcess($proc)->setInput($asset->getContent());
+        }
+
+        $asset->setContent($proc->getOutput());
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyJs2Filter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyJs2Filter.php
new file mode 100644
index 000000000000..d30ed1bea089
--- /dev/null
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyJs2Filter.php
@@ -0,0 +1,105 @@
+<?php
+
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Assetic\Filter;
+
+use Assetic\Asset\AssetInterface;
+use Assetic\Exception\FilterException;
+
+/**
+ * UglifyJs2 filter.
+ *
+ * @link http://lisperator.net/uglifyjs
+ * @author Kris Wallsmith <kris.wallsmith@gmail.com>
+ */
+class UglifyJs2Filter extends BaseNodeFilter
+{
+    private $uglifyjsBin;
+    private $nodeBin;
+    private $compress;
+    private $beautify;
+    private $mangle;
+
+    public function __construct($uglifyjsBin = '/usr/bin/uglifyjs', $nodeBin = null)
+    {
+        $this->uglifyjsBin = $uglifyjsBin;
+        $this->nodeBin = $nodeBin;
+    }
+
+    public function setCompress($compress)
+    {
+        $this->compress = $compress;
+    }
+
+    public function setBeautify($beautify)
+    {
+        $this->beautify = $beautify;
+    }
+
+    public function setMangle($mangle)
+    {
+        $this->mangle = $mangle;
+    }
+
+    public function filterLoad(AssetInterface $asset)
+    {
+    }
+
+    public function filterDump(AssetInterface $asset)
+    {
+        $pb = $this->createProcessBuilder($this->nodeBin
+            ? array($this->nodeBin, $this->uglifyjsBin)
+            : array($this->uglifyjsBin));
+
+        if ($this->compress) {
+            $pb->add('--compress');
+        }
+
+        if ($this->beautify) {
+            $pb->add('--beautify');
+        }
+
+        if ($this->mangle) {
+            $pb->add('--mangle');
+        }
+
+        // input and output files
+        $input = tempnam(sys_get_temp_dir(), 'input');
+        $output = tempnam(sys_get_temp_dir(), 'output');
+
+        file_put_contents($input, $asset->getContent());
+        $pb->add('-o')->add($output)->add($input);
+
+        $proc = $pb->getProcess();
+        $code = $proc->run();
+        unlink($input);
+
+        if (0 !== $code) {
+            if (file_exists($output)) {
+                unlink($output);
+            }
+
+            if (127 === $code) {
+                throw new \RuntimeException('Path to node executable could not be resolved.');
+            }
+
+            throw FilterException::fromProcess($proc)->setInput($asset->getContent());
+        }
+
+        if (!file_exists($output)) {
+            throw new \RuntimeException('Error creating output file.');
+        }
+
+        $asset->setContent(file_get_contents($output));
+
+        unlink($output);
+    }
+}
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyJsFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyJsFilter.php
index 07724caf17d0..5a0ae3309987 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyJsFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/UglifyJsFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,6 @@
 
 use Assetic\Asset\AssetInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
 
 /**
  * UglifyJs filter.
@@ -21,23 +20,24 @@
  * @link https://github.com/mishoo/UglifyJS
  * @author André Roaldseth <andre@roaldseth.net>
  */
-class UglifyJsFilter implements FilterInterface
+class UglifyJsFilter extends BaseNodeFilter
 {
-    private $uglifyJsPath;
-    private $nodeJsPath;
+    private $uglifyjsBin;
+    private $nodeBin;
 
     private $noCopyright;
     private $beautify;
     private $unsafe;
+    private $mangle;
 
     /**
-     * @param string $uglifyJsPath Absolute path to the uglifyjs executable
-     * @param string $nodeJsPath   Absolute path to the folder containg node.js executable
+     * @param string $uglifyjsBin Absolute path to the uglifyjs executable
+     * @param string $nodeBin      Absolute path to the folder containg node.js executable
      */
-    public function __construct($uglifyJsPath, $nodeJsPath = null)
+    public function __construct($uglifyjsBin = '/usr/bin/uglifyjs', $nodeBin = null)
     {
-        $this->uglifyJsPath = $uglifyJsPath;
-        $this->nodeJsPath = $nodeJsPath;
+        $this->uglifyjsBin = $uglifyjsBin;
+        $this->nodeBin = $nodeBin;
     }
 
     /**
@@ -67,6 +67,15 @@ public function setUnsafe($unsafe)
         $this->unsafe = $unsafe;
     }
 
+    /**
+     * Safely mangle variable and function names for greater file compress.
+     * @param bool $mangle True to enable
+     */
+    public function setMangle($mangle)
+    {
+        $this->mangle = $mangle;
+    }
+
     /**
      * @see Assetic\Filter\FilterInterface::filterLoad()
      */
@@ -81,15 +90,9 @@ public function filterLoad(AssetInterface $asset)
      */
     public function filterDump(AssetInterface $asset)
     {
-        $executables = array();
-
-        if ($this->nodeJsPath !== null) {
-            $executables[] = $this->nodeJsPath;
-        }
-
-        $executables[] = $this->uglifyJsPath;
-
-        $pb = new ProcessBuilder($executables);
+        $pb = $this->createProcessBuilder($this->nodeBin
+            ? array($this->nodeBin, $this->uglifyjsBin)
+            : array($this->uglifyjsBin));
 
         if ($this->noCopyright) {
             $pb->add('--no-copyright');
@@ -103,6 +106,10 @@ public function filterDump(AssetInterface $asset)
             $pb->add('--unsafe');
         }
 
+        if (false === $this->mangle) {
+            $pb->add('--no-mangle');
+        }
+
         // input and output files
         $input = tempnam(sys_get_temp_dir(), 'input');
         $output = tempnam(sys_get_temp_dir(), 'output');
@@ -114,7 +121,7 @@ public function filterDump(AssetInterface $asset)
         $code = $proc->run();
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             if (file_exists($output)) {
                 unlink($output);
             }
@@ -124,7 +131,9 @@ public function filterDump(AssetInterface $asset)
             }
 
             throw FilterException::fromProcess($proc)->setInput($asset->getContent());
-        } elseif (!file_exists($output)) {
+        }
+
+        if (!file_exists($output)) {
             throw new \RuntimeException('Error creating output file.');
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/BaseCompressorFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/BaseCompressorFilter.php
index 920987aed822..ba9c7bb95687 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/BaseCompressorFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/BaseCompressorFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,9 +12,8 @@
 namespace Assetic\Filter\Yui;
 
 use Assetic\Asset\AssetInterface;
-use Assetic\Filter\FilterInterface;
 use Assetic\Exception\FilterException;
-use Symfony\Component\Process\ProcessBuilder;
+use Assetic\Filter\BaseProcessFilter;
 
 /**
  * Base YUI compressor filter.
@@ -22,12 +21,13 @@
  * @link http://developer.yahoo.com/yui/compressor/
  * @author Kris Wallsmith <kris.wallsmith@gmail.com>
  */
-abstract class BaseCompressorFilter implements FilterInterface
+abstract class BaseCompressorFilter extends BaseProcessFilter
 {
     private $jarPath;
     private $javaPath;
     private $charset;
     private $lineBreak;
+    private $stackSize;
 
     public function __construct($jarPath, $javaPath = '/usr/bin/java')
     {
@@ -45,6 +45,11 @@ public function setLineBreak($lineBreak)
         $this->lineBreak = $lineBreak;
     }
 
+    public function setStackSize($stackSize)
+    {
+        $this->stackSize = $stackSize;
+    }
+
     public function filterLoad(AssetInterface $asset)
     {
     }
@@ -60,11 +65,13 @@ public function filterLoad(AssetInterface $asset)
      */
     protected function compress($content, $type, $options = array())
     {
-        $pb = new ProcessBuilder(array(
-            $this->javaPath,
-            '-jar',
-            $this->jarPath,
-        ));
+        $pb = $this->createProcessBuilder(array($this->javaPath));
+
+        if (null !== $this->stackSize) {
+            $pb->add('-Xss'.$this->stackSize);
+        }
+
+        $pb->add('-jar')->add($this->jarPath);
 
         foreach ($options as $option) {
             $pb->add($option);
@@ -89,13 +96,15 @@ protected function compress($content, $type, $options = array())
         $code = $proc->run();
         unlink($input);
 
-        if (0 < $code) {
+        if (0 !== $code) {
             if (file_exists($output)) {
                 unlink($output);
             }
 
             throw FilterException::fromProcess($proc)->setInput($content);
-        } elseif (!file_exists($output)) {
+        }
+
+        if (!file_exists($output)) {
             throw new \RuntimeException('Error creating output file.');
         }
 
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/CssCompressorFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/CssCompressorFilter.php
index 26f7646b02ee..96d2739a82dc 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/CssCompressorFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/CssCompressorFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/JsCompressorFilter.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/JsCompressorFilter.php
index db48cf570263..2326f2e4b6f5 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/JsCompressorFilter.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/Yui/JsCompressorFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/FilterManager.php b/core/vendor/kriswallsmith/assetic/src/Assetic/FilterManager.php
index ee7a37a86c7e..48fe9fce3df1 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/FilterManager.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/FilterManager.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Util/PathUtils.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Util/PathUtils.php
index 8fda83bf413e..4a54353d9258 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Util/PathUtils.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Util/PathUtils.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * This file is part of the Assetic package, an OpenSky project.
+ *
+ * (c) 2010-2013 OpenSky Project Inc
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 namespace Assetic\Util;
 
 /**
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/Util/TraversableString.php b/core/vendor/kriswallsmith/assetic/src/Assetic/Util/TraversableString.php
index 9f1a633eaf00..4802a52329a1 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/Util/TraversableString.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/Util/TraversableString.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/Assetic/ValueSupplierInterface.php b/core/vendor/kriswallsmith/assetic/src/Assetic/ValueSupplierInterface.php
index 81ddcb5a9f77..75c81a0fcc3b 100644
--- a/core/vendor/kriswallsmith/assetic/src/Assetic/ValueSupplierInterface.php
+++ b/core/vendor/kriswallsmith/assetic/src/Assetic/ValueSupplierInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
diff --git a/core/vendor/kriswallsmith/assetic/src/functions.php b/core/vendor/kriswallsmith/assetic/src/functions.php
index 264589e1ab67..75cfbf232859 100644
--- a/core/vendor/kriswallsmith/assetic/src/functions.php
+++ b/core/vendor/kriswallsmith/assetic/src/functions.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of the Assetic package, an OpenSky project.
  *
- * (c) 2010-2012 OpenSky Project Inc
+ * (c) 2010-2013 OpenSky Project Inc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -109,12 +109,12 @@ function _assetic_urls($inputs = array(), $filters = array(), array $options = a
 
     $one = $coll->getTargetPath();
     if ($combine) {
+        $many = array($one);
+    } else {
         $many = array();
         foreach ($coll as $leaf) {
             $many[] = $leaf->getTargetPath();
         }
-    } else {
-        $many = array($one);
     }
 
     return new TraversableString($one, $many);
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetCacheTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetCacheTest.php
deleted file mode 100644
index 9484f2a6b860..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetCacheTest.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Asset;
-
-use Assetic\Asset\AssetCache;
-
-class AssetCacheTest extends \PHPUnit_Framework_TestCase
-{
-    private $inner;
-    private $cache;
-    private $asset;
-
-    protected function setUp()
-    {
-        $this->inner = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $this->cache = $this->getMock('Assetic\\Cache\\CacheInterface');
-
-        $this->asset = new AssetCache($this->inner, $this->cache);
-    }
-
-    public function testLoadFromCache()
-    {
-        $content = 'asdf';
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-
-        $this->inner->expects($this->once())
-            ->method('getFilters')
-            ->will($this->returnValue(array($filter)));
-        $this->cache->expects($this->once())
-            ->method('has')
-            ->with($this->isType('string'))
-            ->will($this->returnValue(true));
-        $this->cache->expects($this->once())
-            ->method('get')
-            ->with($this->isType('string'))
-            ->will($this->returnValue($content));
-        $this->inner->expects($this->once())
-            ->method('setContent')
-            ->with($content);
-
-        $this->asset->load($filter);
-    }
-
-    public function testLoadToCache()
-    {
-        $content = 'asdf';
-
-        $this->inner->expects($this->once())
-            ->method('getFilters')
-            ->will($this->returnValue(array()));
-        $this->cache->expects($this->once())
-            ->method('has')
-            ->with($this->isType('string'))
-            ->will($this->returnValue(false));
-        $this->inner->expects($this->once())->method('load');
-        $this->inner->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue($content));
-        $this->cache->expects($this->once())
-            ->method('set')
-            ->with($this->isType('string'), $content);
-
-        $this->asset->load();
-    }
-
-    public function testDumpFromCache()
-    {
-        $content = 'asdf';
-
-        $this->inner->expects($this->once())
-            ->method('getFilters')
-            ->will($this->returnValue(array()));
-        $this->cache->expects($this->once())
-            ->method('has')
-            ->with($this->isType('string'))
-            ->will($this->returnValue(true));
-        $this->cache->expects($this->once())
-            ->method('get')
-            ->with($this->isType('string'))
-            ->will($this->returnValue($content));
-
-        $this->assertEquals($content, $this->asset->dump(), '->dump() returns the cached value');
-    }
-
-    public function testDumpToCache()
-    {
-        $content = 'asdf';
-
-        $this->inner->expects($this->once())
-            ->method('getFilters')
-            ->will($this->returnValue(array()));
-        $this->cache->expects($this->once())
-            ->method('has')
-            ->with($this->isType('string'))
-            ->will($this->returnValue(false));
-        $this->inner->expects($this->once())
-            ->method('dump')
-            ->will($this->returnValue($content));
-        $this->cache->expects($this->once())
-            ->method('set')
-            ->with($this->isType('string'), $content);
-
-        $this->assertEquals($content, $this->asset->dump(), '->dump() returns the dumped value');
-    }
-
-    public function testEnsureFilter()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $this->inner->expects($this->once())->method('ensureFilter');
-        $this->asset->ensureFilter($filter);
-    }
-
-    public function testGetFilters()
-    {
-        $this->inner->expects($this->once())
-            ->method('getFilters')
-            ->will($this->returnValue(array()));
-
-        $this->assertInternalType('array', $this->asset->getFilters(), '->getFilters() returns the inner asset filters');
-    }
-
-    public function testGetContent()
-    {
-        $this->inner->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue('asdf'));
-
-        $this->assertEquals('asdf', $this->asset->getContent(), '->getContent() returns the inner asset content');
-    }
-
-    public function testSetContent()
-    {
-        $this->inner->expects($this->once())
-            ->method('setContent')
-            ->with('asdf');
-
-        $this->asset->setContent('asdf');
-    }
-
-    public function testGetSourceRoot()
-    {
-        $this->inner->expects($this->once())
-            ->method('getSourceRoot')
-            ->will($this->returnValue('asdf'));
-
-        $this->assertEquals('asdf', $this->asset->getSourceRoot(), '->getSourceRoot() returns the inner asset source root');
-    }
-
-    public function testGetSourcePath()
-    {
-        $this->inner->expects($this->once())
-            ->method('getSourcePath')
-            ->will($this->returnValue('asdf'));
-
-        $this->assertEquals('asdf', $this->asset->getSourcePath(), '->getSourcePath() returns the inner asset source path');
-    }
-
-    public function testGetLastModified()
-    {
-        $this->inner->expects($this->once())
-            ->method('getLastModified')
-            ->will($this->returnValue(123));
-
-        $this->assertEquals(123, $this->asset->getLastModified(), '->getLastModified() returns the inner asset last modified');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetCollectionTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetCollectionTest.php
deleted file mode 100644
index 3995ee1c43c4..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetCollectionTest.php
+++ /dev/null
@@ -1,333 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Asset;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Asset\FileAsset;
-use Assetic\Asset\AssetCollection;
-use Assetic\Filter\CallablesFilter;
-
-class AssetCollectionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $coll = new AssetCollection();
-        $this->assertInstanceOf('Assetic\\Asset\\AssetInterface', $coll, 'AssetCollection implements AssetInterface');
-    }
-
-    public function testLoadFilter()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $filter->expects($this->once())->method('filterLoad');
-
-        $coll = new AssetCollection(array(new StringAsset('')), array($filter));
-        $coll->load();
-    }
-
-    public function testDumpFilter()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $filter->expects($this->once())->method('filterDump');
-
-        $coll = new AssetCollection(array(new StringAsset('')), array($filter));
-        $coll->dump();
-    }
-
-    public function testNestedCollectionLoad()
-    {
-        $content = 'foobar';
-
-        $count = 0;
-        $matches = array();
-        $filter = new CallablesFilter(function($asset) use ($content, &$matches, &$count) {
-            ++$count;
-            if ($content == $asset->getContent()) {
-                $matches[] = $asset;
-            }
-        });
-
-        $innerColl = new AssetCollection(array(new StringAsset($content)));
-        $outerColl = new AssetCollection(array($innerColl), array($filter));
-        $outerColl->load();
-
-        $this->assertEquals(1, count($matches), '->load() applies filters to leaves');
-        $this->assertEquals(1, $count, '->load() applies filters to leaves only');
-    }
-
-    public function testMixedIteration()
-    {
-        $asset = new StringAsset('asset');
-        $nestedAsset = new StringAsset('nested');
-        $innerColl = new AssetCollection(array($nestedAsset));
-
-        $contents = array();
-        $filter = new CallablesFilter(function($asset) use (&$contents) {
-            $contents[] = $asset->getContent();
-        });
-
-        $coll = new AssetCollection(array($asset, $innerColl), array($filter));
-        $coll->load();
-
-        $this->assertEquals(array('asset', 'nested'), $contents, '->load() iterates over multiple levels');
-    }
-
-    public function testLoadDedupBySourceUrl()
-    {
-        $asset1 = new StringAsset('asset', array(), '/some/dir', 'foo.bar');
-        $asset2 = new StringAsset('asset', array(), '/some/dir', 'foo.bar');
-
-        $coll = new AssetCollection(array($asset1, $asset2));
-        $coll->load();
-
-        $this->assertEquals('asset', $coll->getContent(), '->load() detects duplicate assets based on source URL');
-    }
-
-    public function testLoadDedupByStrictEquality()
-    {
-        $asset = new StringAsset('foo');
-
-        $coll = new AssetCollection(array($asset, $asset));
-        $coll->load();
-
-        $this->assertEquals('foo', $coll->getContent(), '->load() detects duplicate assets based on strict equality');
-    }
-
-    public function testDumpDedupBySourceUrl()
-    {
-        $asset1 = new StringAsset('asset', array(), '/some/dir', 'foo.bar');
-        $asset2 = new StringAsset('asset', array(), '/some/dir', 'foo.bar');
-
-        $coll = new AssetCollection(array($asset1, $asset2));
-        $coll->load();
-
-        $this->assertEquals('asset', $coll->dump(), '->dump() detects duplicate assets based on source URL');
-    }
-
-    public function testDumpDedupByStrictEquality()
-    {
-        $asset = new StringAsset('foo');
-
-        $coll = new AssetCollection(array($asset, $asset));
-        $coll->load();
-
-        $this->assertEquals('foo', $coll->dump(), '->dump() detects duplicate assets based on strict equality');
-    }
-
-    public function testIterationFilters()
-    {
-        $count = 0;
-        $filter = new CallablesFilter(function() use (&$count) { ++$count; });
-
-        $coll = new AssetCollection();
-        $coll->add(new StringAsset(''));
-        $coll->ensureFilter($filter);
-
-        foreach ($coll as $asset) {
-            $asset->dump();
-        }
-
-        $this->assertEquals(1, $count, 'collection filters are called when child assets are iterated over');
-    }
-
-    public function testSetContent()
-    {
-        $coll = new AssetCollection();
-        $coll->setContent('asdf');
-
-        $this->assertEquals('asdf', $coll->getContent(), '->setContent() sets the content');
-    }
-
-    /**
-     * @dataProvider getTimestampsAndExpected
-     */
-    public function testGetLastModified($timestamps, $expected)
-    {
-        $assets = array();
-
-        for ($i = 0; $i < count($timestamps); $i++) {
-            $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-            $asset->expects($this->once())
-                ->method('getLastModified')
-                ->will($this->returnValue($timestamps[$i]));
-            $assets[$i] = $asset;
-        }
-
-        $coll = new AssetCollection($assets);
-
-        $this->assertEquals($expected, $coll->getLastModified(), '->getLastModifed() returns the highest last modified');
-    }
-
-    public function testGetLastModifiedWithValues()
-    {
-        $vars = array('locale');
-        $asset = new FileAsset(__DIR__.'/../Fixture/messages.{locale}.js', array(), null, null, $vars);
-
-        $coll = new AssetCollection(array($asset), array(), null, $vars);
-        $coll->setValues(array('locale' => 'en'));
-        try {
-            $coll->getLastModified();
-        } catch (\InvalidArgumentException $e) {
-            $this->fail("->getLastModified() shouldn't fail for assets with vars");
-        }
-    }
-
-    public function getTimestampsAndExpected()
-    {
-        return array(
-            array(array(1, 2, 3), 3),
-            array(array(5, 4, 3), 5),
-            array(array(3, 8, 5), 8),
-            array(array(3, 8, null), 8),
-        );
-    }
-
-    public function testRecursiveIteration()
-    {
-        $asset1 = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $asset2 = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $asset3 = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $asset4 = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $coll3 = new AssetCollection(array($asset1, $asset2));
-        $coll2 = new AssetCollection(array($asset3, $coll3));
-        $coll1 = new AssetCollection(array($asset4, $coll2));
-
-        $i = 0;
-        foreach ($coll1 as $a) {
-            $i++;
-        }
-
-        $this->assertEquals(4, $i, 'iteration with a recursive iterator is recursive');
-    }
-
-    public function testRecursiveDeduplication()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $coll3 = new AssetCollection(array($asset, $asset));
-        $coll2 = new AssetCollection(array($asset, $coll3));
-        $coll1 = new AssetCollection(array($asset, $coll2));
-
-        $i = 0;
-        foreach ($coll1 as $a) {
-            $i++;
-        }
-
-        $this->assertEquals(1, $i, 'deduplication is performed recursively');
-    }
-
-    public function testIteration()
-    {
-        $asset1 = new StringAsset('asset1', array(), '/some/dir', 'foo.css');
-        $asset2 = new StringAsset('asset2', array(), '/some/dir', 'foo.css');
-        $asset3 = new StringAsset('asset3', array(), '/some/dir', 'bar.css');
-
-        $coll = new AssetCollection(array($asset1, $asset2, $asset3));
-
-        $count = 0;
-        foreach ($coll as $a) {
-            ++$count;
-        }
-
-        $this->assertEquals(2, $count, 'iterator filters duplicates based on url');
-    }
-
-    public function testBasenameCollision()
-    {
-        $asset1 = new StringAsset('asset1', array(), '/some/dir', 'foo/foo.css');
-        $asset2 = new StringAsset('asset2', array(), '/some/dir', 'bar/foo.css');
-
-        $coll = new AssetCollection(array($asset1, $asset2));
-
-        $urls = array();
-        foreach ($coll as $leaf) {
-            $urls[] = $leaf->getTargetPath();
-        }
-
-        $this->assertEquals(2, count(array_unique($urls)), 'iterator prevents basename collisions');
-    }
-
-    public function testEmptyMtime()
-    {
-        $coll = new AssetCollection();
-        $this->assertNull($coll->getLastModified(), '->getLastModified() returns null on empty collection');
-    }
-
-    public function testLeafManipulation()
-    {
-        $coll = new AssetCollection(array(new StringAsset('asdf')));
-
-        foreach ($coll as $leaf) {
-            $leaf->setTargetPath('asdf');
-        }
-
-        foreach ($coll as $leaf) {
-            $this->assertEquals('asdf', $leaf->getTargetPath(), 'leaf changes persist between iterations');
-        }
-    }
-
-    public function testRemoveLeaf()
-    {
-        $coll = new AssetCollection(array(
-            $leaf = new StringAsset('asdf'),
-        ));
-
-        $this->assertTrue($coll->removeLeaf($leaf));
-    }
-
-    public function testRemoveRecursiveLeaf()
-    {
-        $coll = new AssetCollection(array(
-            new AssetCollection(array(
-                $leaf = new StringAsset('asdf'),
-            ))
-        ));
-
-        $this->assertTrue($coll->removeLeaf($leaf));
-    }
-
-    public function testRemoveInvalidLeaf()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-
-        $coll = new AssetCollection();
-        $coll->removeLeaf(new StringAsset('asdf'));
-    }
-
-    public function testReplaceLeaf()
-    {
-        $coll = new AssetCollection(array(
-            $leaf = new StringAsset('asdf'),
-        ));
-
-        $this->assertTrue($coll->replaceLeaf($leaf, new StringAsset('foo')));
-    }
-
-    public function testReplaceRecursiveLeaf()
-    {
-        $coll = new AssetCollection(array(
-            new AssetCollection(array(
-                $leaf = new StringAsset('asdf'),
-            )),
-        ));
-
-        $this->assertTrue($coll->replaceLeaf($leaf, new StringAsset('foo')));
-    }
-
-    public function testReplaceInvalidLeaf()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-
-        $coll = new AssetCollection();
-        $coll->replaceLeaf(new StringAsset('foo'), new StringAsset('bar'));
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetReferenceTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetReferenceTest.php
deleted file mode 100644
index 3a62b77e7a3d..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/AssetReferenceTest.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Asset;
-
-use Assetic\Asset\AssetReference;
-
-class AssetReferenceTest extends \PHPUnit_Framework_TestCase
-{
-    private $am;
-    private $ref;
-
-    protected function setUp()
-    {
-        $this->am = $this->getMock('Assetic\\AssetManager');
-        $this->ref = new AssetReference($this->am, 'foo');
-    }
-
-    /**
-     * @dataProvider getMethodAndRetVal
-     */
-    public function testMethods($method, $returnValue)
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $this->am->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-        $asset->expects($this->once())
-            ->method($method)
-            ->will($this->returnValue($returnValue));
-
-        $this->assertEquals($returnValue, $this->ref->$method(), '->'.$method.'() returns the asset value');
-    }
-
-    public function getMethodAndRetVal()
-    {
-        return array(
-            array('getContent', 'asdf'),
-            array('getSourceRoot', 'asdf'),
-            array('getSourcePath', 'asdf'),
-            array('getTargetPath', 'asdf'),
-            array('getLastModified', 123),
-        );
-    }
-
-    public function testLazyFilters()
-    {
-        $this->am->expects($this->never())->method('get');
-        $this->ref->ensureFilter($this->getMock('Assetic\\Filter\\FilterInterface'));
-    }
-
-    public function testFilterFlush()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $this->am->expects($this->exactly(2))
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-        $asset->expects($this->once())->method('ensureFilter');
-        $asset->expects($this->once())
-            ->method('getFilters')
-            ->will($this->returnValue(array()));
-
-        $this->ref->ensureFilter($this->getMock('Assetic\\Filter\\FilterInterface'));
-
-        $this->assertInternalType('array', $this->ref->getFilters(), '->getFilters() flushes and returns filters');
-    }
-
-    public function testSetContent()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $this->am->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-        $asset->expects($this->once())
-            ->method('setContent')
-            ->with('asdf');
-
-        $this->ref->setContent('asdf');
-    }
-
-    public function testLoad()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $this->am->expects($this->exactly(2))
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-        $asset->expects($this->once())
-            ->method('load')
-            ->with($filter);
-
-        $this->ref->load($filter);
-    }
-
-    public function testDump()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $this->am->expects($this->exactly(2))
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-        $asset->expects($this->once())
-            ->method('dump')
-            ->with($filter);
-
-        $this->ref->dump($filter);
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/FileAssetTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/FileAssetTest.php
deleted file mode 100644
index c11d4c015be2..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/FileAssetTest.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Asset;
-
-use Assetic\Asset\FileAsset;
-
-class FileAssetTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $asset = new FileAsset(__FILE__);
-        $this->assertInstanceOf('Assetic\\Asset\\AssetInterface', $asset, 'Asset implements AssetInterface');
-    }
-
-    public function testLazyLoading()
-    {
-        $asset = new FileAsset(__FILE__);
-        $this->assertEmpty($asset->getContent(), 'The asset content is empty before load');
-
-        $asset->load();
-        $this->assertNotEmpty($asset->getContent(), 'The asset content is not empty after load');
-    }
-
-    public function testGetLastModifiedType()
-    {
-        $asset = new FileAsset(__FILE__);
-        $this->assertInternalType('integer', $asset->getLastModified(), '->getLastModified() returns an integer');
-    }
-
-    public function testGetLastModifiedTypeFileNotFound()
-    {
-        $asset = new FileAsset(__DIR__ . "/foo/bar/baz.css");
-
-        $this->setExpectedException("RuntimeException", "The source file");
-        $asset->getLastModified();
-    }
-
-    public function testGetLastModifiedValue()
-    {
-        $asset = new FileAsset(__FILE__);
-        $this->assertLessThan(time(), $asset->getLastModified(), '->getLastModified() returns the mtime');
-    }
-
-    public function testDefaultBaseAndPath()
-    {
-        $asset = new FileAsset(__FILE__);
-        $this->assertEquals(__DIR__, $asset->getSourceRoot(), '->__construct() defaults base to the asset directory');
-        $this->assertEquals(basename(__FILE__), $asset->getSourcePath(), '->__construct() defaults path to the asset basename');
-    }
-
-    public function testPathGuessing()
-    {
-        $asset = new FileAsset(__FILE__, array(), __DIR__);
-        $this->assertEquals(basename(__FILE__), $asset->getSourcePath(), '->__construct() guesses the asset path');
-    }
-
-    public function testInvalidBase()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-
-        $asset = new FileAsset(__FILE__, array(), __DIR__.'/foo');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/GlobAssetTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/GlobAssetTest.php
deleted file mode 100644
index e0d7199c4c5d..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/GlobAssetTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Asset;
-
-use Assetic\Asset\GlobAsset;
-
-class GlobAssetTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $asset = new GlobAsset(__DIR__.'/*.php');
-        $this->assertInstanceOf('Assetic\\Asset\\AssetInterface', $asset, 'Asset implements AssetInterface');
-    }
-
-    public function testIteration()
-    {
-        $assets = new GlobAsset(__DIR__.'/*.php');
-        $this->assertGreaterThan(0, iterator_count($assets), 'GlobAsset initializes for iteration');
-    }
-
-    public function testRecursiveIteration()
-    {
-        $assets = new GlobAsset(__DIR__.'/*.php');
-        $this->assertGreaterThan(0, iterator_count($assets), 'GlobAsset initializes for recursive iteration');
-    }
-
-    public function testGetLastModifiedType()
-    {
-        $assets = new GlobAsset(__DIR__.'/*.php');
-        $this->assertInternalType('integer', $assets->getLastModified(), '->getLastModified() returns an integer');
-    }
-
-    public function testGetLastModifiedValue()
-    {
-        $assets = new GlobAsset(__DIR__.'/*.php');
-        $this->assertLessThan(time(), $assets->getLastModified(), '->getLastModified() returns a file mtime');
-    }
-
-    public function testLoad()
-    {
-        $assets = new GlobAsset(__DIR__.'/*.php');
-        $assets->load();
-
-        $this->assertNotEmpty($assets->getContent(), '->load() loads contents');
-    }
-
-    public function testDump()
-    {
-        $assets = new GlobAsset(__DIR__.'/*.php');
-        $this->assertNotEmpty($assets->dump(), '->dump() dumps contents');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/HttpAssetTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/HttpAssetTest.php
deleted file mode 100644
index 3ad87d219dd8..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/HttpAssetTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Asset;
-
-use Assetic\Asset\HttpAsset;
-
-class HttpAssetTest extends \PHPUnit_Framework_TestCase
-{
-    const JQUERY = 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js';
-
-    public function testGetLastModified()
-    {
-        if (!extension_loaded('openssl')) {
-            $this->markTestSkipped('The OpenSSL extension is not loaded.');
-        }
-
-        $asset = new HttpAsset(self::JQUERY);
-        $this->assertInternalType('integer', $asset->getLastModified(), '->getLastModified() returns an integer');
-    }
-
-    public function testProtocolRelativeUrl()
-    {
-        $asset = new HttpAsset(substr(self::JQUERY, 6));
-        $asset->load();
-        $this->assertNotEmpty($asset->getContent());
-    }
-
-    public function testMalformedUrl()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-
-        new HttpAsset(__FILE__);
-    }
-
-    public function testInvalidUrl()
-    {
-        $this->setExpectedException('RuntimeException');
-
-        $asset = new HttpAsset('http://invalid.com/foobar');
-        $asset->load();
-    }
-
-    public function testSourceMetadata()
-    {
-        $asset = new HttpAsset(self::JQUERY);
-        $this->assertEquals('https://ajax.googleapis.com', $asset->getSourceRoot(), '->__construct() set the source root');
-        $this->assertEquals('ajax/libs/jquery/1.6.1/jquery.min.js', $asset->getSourcePath(), '->__construct() set the source path');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/StringAssetTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/StringAssetTest.php
deleted file mode 100644
index 7994a3896acd..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Asset/StringAssetTest.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Asset;
-
-use Assetic\Asset\StringAsset;
-
-class StringAssetTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $asset = new StringAsset('');
-        $this->assertInstanceOf('Assetic\\Asset\\AssetInterface', $asset, 'Asset implements AssetInterface');
-    }
-
-    public function testLoadAppliesFilters()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $filter->expects($this->once())->method('filterLoad');
-
-        $asset = new StringAsset('foo', array($filter));
-        $asset->load();
-    }
-
-    public function testAutomaticLoad()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $filter->expects($this->once())->method('filterLoad');
-
-        $asset = new StringAsset('foo', array($filter));
-        $asset->dump();
-    }
-
-    public function testGetFilters()
-    {
-        $asset = new StringAsset('');
-        $this->assertInternalType('array', $asset->getFilters(), '->getFilters() returns an array');
-    }
-
-    public function testLoadAppliesAdditionalFilter()
-    {
-        $asset = new StringAsset('');
-        $asset->load();
-
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $filter->expects($this->once())
-            ->method('filterLoad')
-            ->with($asset);
-
-        $asset->load($filter);
-    }
-
-    public function testDumpAppliesAdditionalFilter()
-    {
-        $asset = new StringAsset('');
-
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $filter->expects($this->once())
-            ->method('filterDump')
-            ->with($asset);
-
-        $asset->dump($filter);
-    }
-
-    public function testLastModified()
-    {
-        $asset = new StringAsset('');
-        $asset->setLastModified(123);
-        $this->assertEquals(123, $asset->getLastModified(), '->getLastModified() return the set last modified value');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/AssetManagerTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/AssetManagerTest.php
deleted file mode 100644
index d4598554ecc5..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/AssetManagerTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test;
-
-use Assetic\AssetManager;
-
-class AssetManagerTest extends \PHPUnit_Framework_TestCase
-{
-    private $am;
-
-    protected function setUp()
-    {
-        $this->am = new AssetManager();
-    }
-
-    public function testGetAsset()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $this->am->set('foo', $asset);
-        $this->assertSame($asset, $this->am->get('foo'), '->get() returns an asset');
-    }
-
-    public function testGetInvalidAsset()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->am->get('foo');
-    }
-
-    public function testHas()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $this->am->set('foo', $asset);
-
-        $this->assertTrue($this->am->has('foo'), '->has() returns true if the asset is set');
-        $this->assertFalse($this->am->has('bar'), '->has() returns false if the asset is not set');
-    }
-
-    public function testInvalidName()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-
-        $this->am->set('@foo', $this->getMock('Assetic\\Asset\\AssetInterface'));
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/AssetWriterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/AssetWriterTest.php
deleted file mode 100644
index 97cf2c1b4905..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/AssetWriterTest.php
+++ /dev/null
@@ -1,207 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test;
-
-use Assetic\Asset\FileAsset;
-
-use Assetic\AssetManager;
-use Assetic\AssetWriter;
-
-class AssetWriterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        $this->dir = sys_get_temp_dir().'/assetic_tests_'.rand(11111, 99999);
-        mkdir($this->dir);
-        $this->writer = new AssetWriter($this->dir, array(
-            'locale' => array('en', 'de', 'fr'),
-            'browser' => array('ie', 'firefox', 'other'),
-            'gzip' => array('gzip', '')
-        ));
-    }
-
-    protected function tearDown()
-    {
-        array_map('unlink', glob($this->dir.'/*'));
-        rmdir($this->dir);
-    }
-
-    public function testWriteManagerAssets()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $am = $this->getMock('Assetic\\AssetManager');
-
-        $am->expects($this->once())
-            ->method('getNames')
-            ->will($this->returnValue(array('foo')));
-        $am->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-        $asset->expects($this->atLeastOnce())
-            ->method('getTargetPath')
-            ->will($this->returnValue('target_url'));
-        $asset->expects($this->once())
-            ->method('dump')
-            ->will($this->returnValue('content'));
-        $asset->expects($this->atLeastOnce())
-            ->method('getVars')
-            ->will($this->returnValue(array()));
-        $asset->expects($this->atLeastOnce())
-            ->method('getValues')
-            ->will($this->returnValue(array()));
-
-        $this->writer->writeManagerAssets($am);
-
-        $this->assertFileExists($this->dir.'/target_url');
-        $this->assertEquals('content', file_get_contents($this->dir.'/target_url'));
-    }
-
-    public function testWriteAssetWithVars()
-    {
-        $asset = $this->getMock('Assetic\Asset\AssetInterface');
-        $asset->expects($this->atLeastOnce())
-            ->method('getVars')
-            ->will($this->returnValue(array('locale')));
-
-        $self = $this;
-        $expectedValues = array(
-            array('locale' => 'en'),
-            array('locale' => 'de'),
-            array('locale' => 'fr'),
-        );
-        $asset->expects($this->exactly(3))
-            ->method('setValues')
-            ->will($this->returnCallback(function($values) use ($self, $expectedValues) {
-                static $counter = 0;
-                $self->assertEquals($expectedValues[$counter++], $values);
-            }));
-        $asset->expects($this->exactly(3))
-            ->method('getValues')
-            ->will($this->returnCallback(function() use ($expectedValues) {
-                static $counter = 0;
-
-                return $expectedValues[$counter++];
-            }));
-
-        $asset->expects($this->exactly(3))
-            ->method('dump')
-            ->will($this->onConsecutiveCalls('en', 'de', 'fr'));
-
-        $asset->expects($this->atLeastOnce())
-            ->method('getTargetPath')
-            ->will($this->returnValue('target.{locale}'));
-
-        $this->writer->writeAsset($asset);
-
-        $this->assertFileExists($this->dir.'/target.en');
-        $this->assertFileExists($this->dir.'/target.de');
-        $this->assertFileExists($this->dir.'/target.fr');
-        $this->assertEquals('en', file_get_contents($this->dir.'/target.en'));
-        $this->assertEquals('de', file_get_contents($this->dir.'/target.de'));
-        $this->assertEquals('fr', file_get_contents($this->dir.'/target.fr'));
-    }
-
-    public function testAssetWithInputVars()
-    {
-        $asset = new FileAsset(__DIR__.'/Fixture/messages.{locale}.js',
-            array(), null, null, array('locale'));
-        $asset->setTargetPath('messages.{locale}.js');
-
-        $this->writer->writeAsset($asset);
-
-        $this->assertFileExists($this->dir.'/messages.en.js');
-        $this->assertFileExists($this->dir.'/messages.de.js');
-        $this->assertFileExists($this->dir.'/messages.fr.js');
-        $this->assertEquals('var messages = {"text.greeting": "Hello %name%!"};',
-            file_get_contents($this->dir.'/messages.en.js'));
-        $this->assertEquals('var messages = {"text.greeting": "Hallo %name%!"};',
-            file_get_contents($this->dir.'/messages.de.js'));
-        $this->assertEquals('var messages = {"text.greet": "All\u00f4 %name%!"};',
-            file_get_contents($this->dir.'/messages.fr.js'));
-    }
-
-    /**
-     * @dataProvider getCombinationTests
-     */
-    public function testGetCombinations($vars, $expectedCombinations)
-    {
-        $ref = new \ReflectionMethod($this->writer, 'getCombinations');
-        $ref->setAccessible(true);
-
-        $this->assertEquals($expectedCombinations, $ref->invoke($this->writer, $vars));
-    }
-
-    public function getCombinationTests()
-    {
-        $tests = array();
-
-        // no variables
-        $tests[] = array(
-            array(),
-            array(array())
-        );
-
-        // one variables
-        $tests[] = array(
-            array('locale'),
-            array(
-                array('locale' => 'en'),
-                array('locale' => 'de'),
-                array('locale' => 'fr'),
-            )
-        );
-
-        // two variables
-        $tests[] = array(
-            array('locale', 'browser'),
-            array(
-                array('locale' => 'en', 'browser' => 'ie'),
-                array('locale' => 'de', 'browser' => 'ie'),
-                array('locale' => 'fr', 'browser' => 'ie'),
-                array('locale' => 'en', 'browser' => 'firefox'),
-                array('locale' => 'de', 'browser' => 'firefox'),
-                array('locale' => 'fr', 'browser' => 'firefox'),
-                array('locale' => 'en', 'browser' => 'other'),
-                array('locale' => 'de', 'browser' => 'other'),
-                array('locale' => 'fr', 'browser' => 'other'),
-            )
-        );
-
-        // three variables
-        $tests[] = array(
-            array('locale', 'browser', 'gzip'),
-            array(
-                array('locale' => 'en', 'browser' => 'ie', 'gzip' => 'gzip'),
-                array('locale' => 'de', 'browser' => 'ie', 'gzip' => 'gzip'),
-                array('locale' => 'fr', 'browser' => 'ie', 'gzip' => 'gzip'),
-                array('locale' => 'en', 'browser' => 'firefox', 'gzip' => 'gzip'),
-                array('locale' => 'de', 'browser' => 'firefox', 'gzip' => 'gzip'),
-                array('locale' => 'fr', 'browser' => 'firefox', 'gzip' => 'gzip'),
-                array('locale' => 'en', 'browser' => 'other', 'gzip' => 'gzip'),
-                array('locale' => 'de', 'browser' => 'other', 'gzip' => 'gzip'),
-                array('locale' => 'fr', 'browser' => 'other', 'gzip' => 'gzip'),
-                array('locale' => 'en', 'browser' => 'ie', 'gzip' => ''),
-                array('locale' => 'de', 'browser' => 'ie', 'gzip' => ''),
-                array('locale' => 'fr', 'browser' => 'ie', 'gzip' => ''),
-                array('locale' => 'en', 'browser' => 'firefox', 'gzip' => ''),
-                array('locale' => 'de', 'browser' => 'firefox', 'gzip' => ''),
-                array('locale' => 'fr', 'browser' => 'firefox', 'gzip' => ''),
-                array('locale' => 'en', 'browser' => 'other', 'gzip' => ''),
-                array('locale' => 'de', 'browser' => 'other', 'gzip' => ''),
-                array('locale' => 'fr', 'browser' => 'other', 'gzip' => ''),
-            )
-        );
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ApcCacheTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ApcCacheTest.php
deleted file mode 100644
index 659c06fd0c68..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ApcCacheTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Cache;
-
-use Assetic\Cache\ApcCache;
-
-/**
- * @group integration
- */
-class ApcCacheTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!extension_loaded('apc') || !ini_get('apc.enable_cli')) {
-            $this->markTestSkipped('APC must be installed and enabled.');
-        }
-    }
-
-    public function testCache()
-    {
-        $cache = new ApcCache();
-
-        $this->assertFalse($cache->has('foo'));
-
-        $cache->set('foo', 'bar');
-        $this->assertEquals('bar', $cache->get('foo'));
-
-        $this->assertTrue($cache->has('foo'));
-
-        $cache->remove('foo');
-        $this->assertFalse($cache->has('foo'));
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ConfigCacheTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ConfigCacheTest.php
deleted file mode 100644
index 78ab541238a3..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ConfigCacheTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Cache;
-
-use Assetic\Cache\ConfigCache;
-
-class ConfigCacheTest extends \PHPUnit_Framework_TestCase
-{
-    private $dir;
-    private $cache;
-
-    protected function setUp()
-    {
-        $this->dir = sys_get_temp_dir().'/assetic/tests/config_cache';
-        $this->cache = new ConfigCache($this->dir);
-    }
-
-    protected function tearDown()
-    {
-        foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->dir, \FilesystemIterator::SKIP_DOTS)) as $file) {
-            unlink($file->getPathname());
-        }
-    }
-
-    public function testCache()
-    {
-        $this->cache->set('foo', array(1, 2, 3));
-        $this->assertEquals(array(1, 2, 3), $this->cache->get('foo'), '->get() returns the ->set() value');
-    }
-
-    public function testTimestamp()
-    {
-        $this->cache->set('bar', array(4, 5, 6));
-        $this->assertInternalType('integer', $time = $this->cache->getTimestamp('bar'), '->getTimestamp() returns an integer');
-        $this->assertNotEmpty($time, '->getTimestamp() returns a non-empty number');
-    }
-
-    public function testInvalidValue()
-    {
-        $this->setExpectedException('RuntimeException');
-        $this->cache->get('_invalid');
-    }
-
-    public function testInvalidTimestamp()
-    {
-        $this->setExpectedException('RuntimeException');
-        $this->cache->getTimestamp('_invalid');
-    }
-
-    public function testHas()
-    {
-        $this->cache->set('foo', 'bar');
-        $this->assertTrue($this->cache->has('foo'));
-        $this->assertFalse($this->cache->has('_invalid'));
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ExpiringCacheTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ExpiringCacheTest.php
deleted file mode 100644
index b67cab3e4805..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/ExpiringCacheTest.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Cache;
-
-use Assetic\Cache\ExpiringCache;
-
-class ExpiringCacheTest extends \PHPUnit_Framework_TestCase
-{
-    private $inner;
-    private $lifetime;
-    private $cache;
-
-    protected function setUp()
-    {
-        $this->inner = $this->getMock('Assetic\\Cache\\CacheInterface');
-        $this->lifetime = 3600;
-        $this->cache = new ExpiringCache($this->inner, $this->lifetime);
-    }
-
-    public function testHasExpired()
-    {
-        $key = 'asdf';
-        $expiresKey = 'asdf.expires';
-        $thePast = 0;
-
-        $this->inner->expects($this->once())
-            ->method('has')
-            ->with($key)
-            ->will($this->returnValue(true));
-        $this->inner->expects($this->once())
-            ->method('get')
-            ->with($expiresKey)
-            ->will($this->returnValue($thePast));
-        $this->inner->expects($this->at(2))
-            ->method('remove')
-            ->with($expiresKey);
-        $this->inner->expects($this->at(3))
-            ->method('remove')
-            ->with($key);
-
-        $this->assertFalse($this->cache->has($key), '->has() returns false if an expired value exists');
-    }
-
-    public function testHasNotExpired()
-    {
-        $key = 'asdf';
-        $expiresKey = 'asdf.expires';
-        $theFuture = time() * 2;
-
-        $this->inner->expects($this->once())
-            ->method('has')
-            ->with($key)
-            ->will($this->returnValue(true));
-        $this->inner->expects($this->once())
-            ->method('get')
-            ->with($expiresKey)
-            ->will($this->returnValue($theFuture));
-
-        $this->assertTrue($this->cache->has($key), '->has() returns true if a value the not expired');
-    }
-
-    public function testSetLifetime()
-    {
-        $key = 'asdf';
-        $expiresKey = 'asdf.expires';
-        $value = 'qwerty';
-
-        $this->inner->expects($this->at(0))
-            ->method('set')
-            ->with($expiresKey, $this->greaterThanOrEqual(time() + $this->lifetime));
-        $this->inner->expects($this->at(1))
-            ->method('set')
-            ->with($key, $value);
-
-        $this->cache->set($key, $value);
-    }
-
-    public function testRemove()
-    {
-        $key = 'asdf';
-        $expiresKey = 'asdf.expires';
-
-        $this->inner->expects($this->at(0))
-            ->method('remove')
-            ->with($expiresKey);
-        $this->inner->expects($this->at(1))
-            ->method('remove')
-            ->with($key);
-
-        $this->cache->remove($key);
-    }
-
-    public function testGet()
-    {
-        $this->inner->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue('bar'));
-
-        $this->assertEquals('bar', $this->cache->get('foo'), '->get() returns the cached value');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/FilesystemCacheTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/FilesystemCacheTest.php
deleted file mode 100644
index 6bddf9d8fa61..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Cache/FilesystemCacheTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Cache;
-
-use Assetic\Cache\FilesystemCache;
-
-class FilesystemCacheTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCache()
-    {
-        $cache = new FilesystemCache(sys_get_temp_dir());
-
-        $this->assertFalse($cache->has('foo'));
-
-        $cache->set('foo', 'bar');
-        $this->assertEquals('bar', $cache->get('foo'));
-
-        $this->assertTrue($cache->has('foo'));
-
-        $cache->remove('foo');
-        $this->assertFalse($cache->has('foo'));
-    }
-
-    public function testSetCreatesDir()
-    {
-        $dir = sys_get_temp_dir().'/assetic/fscachetest';
-
-        $tearDown = function() use ($dir) {
-            array_map('unlink', glob($dir.'/*'));
-            @rmdir($dir);
-        };
-
-        $tearDown();
-
-        $cache = new FilesystemCache($dir);
-        $cache->set('foo', 'bar');
-
-        $this->assertFileExists($dir.'/foo');
-
-        $tearDown();
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/AsseticExtensionTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/AsseticExtensionTest.php
deleted file mode 100644
index 58488d83a37e..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/AsseticExtensionTest.php
+++ /dev/null
@@ -1,212 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Extension\Twig;
-
-use Assetic\Factory\AssetFactory;
-use Assetic\Extension\Twig\AsseticExtension;
-
-class AsseticExtensionTest extends \PHPUnit_Framework_TestCase
-{
-    private $am;
-    private $fm;
-    private $factory;
-    private $twig;
-
-    protected function setUp()
-    {
-        if (!class_exists('Twig_Environment')) {
-            $this->markTestSkipped('Twig is not installed.');
-        }
-
-        $this->am = $this->getMock('Assetic\\AssetManager');
-        $this->fm = $this->getMock('Assetic\\FilterManager');
-
-        $this->valueSupplier = $this->getMock('Assetic\ValueSupplierInterface');
-
-        $this->factory = new AssetFactory(__DIR__.'/templates');
-        $this->factory->setAssetManager($this->am);
-        $this->factory->setFilterManager($this->fm);
-
-        $this->twig = new \Twig_Environment();
-        $this->twig->setLoader(new \Twig_Loader_Filesystem(__DIR__.'/templates'));
-        $this->twig->addExtension(new AsseticExtension($this->factory, array(), $this->valueSupplier));
-    }
-
-    public function testReference()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $this->am->expects($this->any())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-
-        $xml = $this->renderXml('reference.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
-    }
-
-    public function testGlob()
-    {
-        $xml = $this->renderXml('glob.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
-    }
-
-    public function testAbsolutePath()
-    {
-        $xml = $this->renderXml('absolute_path.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
-    }
-
-    public function testFilters()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-
-        $this->fm->expects($this->at(0))
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($filter));
-        $this->fm->expects($this->at(1))
-            ->method('get')
-            ->with('bar')
-            ->will($this->returnValue($filter));
-
-        $xml = $this->renderXml('filters.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
-    }
-
-    public function testOptionalFilter()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-
-        $this->fm->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($filter));
-
-        $xml = $this->renderXml('optional_filter.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
-    }
-
-    public function testOutputPattern()
-    {
-        $xml = $this->renderXml('output_pattern.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertStringStartsWith('css/packed/', (string) $xml->asset['url']);
-        $this->assertStringEndsWith('.css', (string) $xml->asset['url']);
-    }
-
-    public function testOutput()
-    {
-        $xml = $this->renderXml('output_url.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertEquals('explicit_url.css', (string) $xml->asset['url']);
-    }
-
-    public function testMixture()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-        $this->am->expects($this->any())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-
-        $xml = $this->renderXml('mixture.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertEquals('packed/mixture', (string) $xml->asset['url']);
-    }
-
-    public function testDebug()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-
-        $this->fm->expects($this->once())
-            ->method('get')
-            ->with('bar')
-            ->will($this->returnValue($filter));
-
-        $xml = $this->renderXml('debug.twig');
-        $this->assertEquals(2, count($xml->asset));
-        $this->assertStringStartsWith('css/packed_', (string) $xml->asset[0]['url']);
-        $this->assertStringEndsWith('.css', (string) $xml->asset[0]['url']);
-    }
-
-    public function testCombine()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-
-        $this->fm->expects($this->once())
-            ->method('get')
-            ->with('bar')
-            ->will($this->returnValue($filter));
-
-        $xml = $this->renderXml('combine.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertEquals('css/packed.css', (string) $xml->asset[0]['url']);
-    }
-
-    public function testImage()
-    {
-        $xml = $this->renderXml('image.twig');
-        $this->assertEquals(1, count($xml->image));
-        $this->assertStringEndsWith('.png', (string) $xml->image[0]['url']);
-    }
-
-    public function testFilterFunction()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-
-        $this->fm->expects($this->once())
-            ->method('get')
-            ->with('some_filter')
-            ->will($this->returnValue($filter));
-
-        $this->twig->addExtension(new AsseticExtension($this->factory, array(
-            'some_func' => array(
-                'filter' => 'some_filter',
-                'options' => array('output' => 'css/*.css'),
-            ),
-        )));
-
-        $xml = $this->renderXml('function.twig');
-        $this->assertEquals(1, count($xml->asset));
-        $this->assertStringEndsWith('.css', (string) $xml->asset[0]['url']);
-    }
-
-    public function testVariables()
-    {
-        $this->valueSupplier->expects($this->once())
-            ->method('getValues')
-            ->will($this->returnValue(array('foo' => 'a', 'bar' => 'b')));
-
-        $xml = $this->renderXml('variables.twig');
-        $this->assertEquals(2, $xml->url->count());
-        $this->assertEquals("js/7d0828c_foo_1.a.b.js", (string) $xml->url[0]);
-        $this->assertEquals("js/7d0828c_variable_input.a_2.a.b.js", (string) $xml->url[1]);
-    }
-
-    /**
-     * @expectedException Twig_Error
-     */
-    public function testUnclosedTag()
-    {
-        $this->renderXml('unclosed_tag.twig');
-    }
-
-    private function renderXml($name, $context = array())
-    {
-        return new \SimpleXMLElement($this->twig->loadTemplate($name)->render($context));
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/TwigFormulaLoaderTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/TwigFormulaLoaderTest.php
deleted file mode 100644
index 1e3e018d42dc..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/TwigFormulaLoaderTest.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Extension\Twig;
-
-use Assetic\Factory\AssetFactory;
-use Assetic\Extension\Twig\AsseticExtension;
-use Assetic\Extension\Twig\TwigFormulaLoader;
-
-class TwigFormulaLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    private $am;
-    private $fm;
-    private $twig;
-
-    protected function setUp()
-    {
-        if (!class_exists('Twig_Environment')) {
-            $this->markTestSkipped('Twig is not installed.');
-        }
-
-        $this->am = $this->getMock('Assetic\\AssetManager');
-        $this->fm = $this->getMock('Assetic\\FilterManager');
-
-        $factory = new AssetFactory(__DIR__.'/templates');
-        $factory->setAssetManager($this->am);
-        $factory->setFilterManager($this->fm);
-
-        $twig = new \Twig_Environment();
-        $twig->addExtension(new AsseticExtension($factory, array(
-            'some_func' => array(
-                'filter' => 'some_filter',
-                'options' => array('output' => 'css/*.css'),
-            ),
-        )));
-
-        $this->loader = new TwigFormulaLoader($twig);
-    }
-
-    public function testMixture()
-    {
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $expected = array(
-            'mixture' => array(
-                array('foo', 'foo/*', '@foo'),
-                array(),
-                array(
-                    'output'  => 'packed/mixture',
-                    'name'    => 'mixture',
-                    'debug'   => false,
-                    'combine' => null,
-                    'vars'    => array(),
-                ),
-            ),
-        );
-
-        $resource = $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface');
-        $resource->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue(file_get_contents(__DIR__.'/templates/mixture.twig')));
-        $this->am->expects($this->any())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($asset));
-
-        $formulae = $this->loader->load($resource);
-        $this->assertEquals($expected, $formulae);
-    }
-
-    public function testFunction()
-    {
-        $expected = array(
-            'my_asset' => array(
-                array('path/to/asset'),
-                array('some_filter'),
-                array('output' => 'css/*.css', 'name' => 'my_asset'),
-            ),
-        );
-
-        $resource = $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface');
-        $resource->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue(file_get_contents(__DIR__.'/templates/function.twig')));
-
-        $formulae = $this->loader->load($resource);
-        $this->assertEquals($expected, $formulae);
-    }
-
-    public function testUnclosedTag()
-    {
-        $resource = $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface');
-        $resource->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue(file_get_contents(__DIR__.'/templates/unclosed_tag.twig')));
-
-        $formulae = $this->loader->load($resource);
-        $this->assertEquals(array(), $formulae);
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/TwigResourceTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/TwigResourceTest.php
deleted file mode 100644
index 771da9f21828..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/TwigResourceTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Extension\Twig;
-
-use Assetic\Extension\Twig\TwigResource;
-
-class TwigResourceTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('Twig_Environment')) {
-            $this->markTestSkipped('Twig is not installed.');
-        }
-    }
-
-    public function testInvalidTemplateNameGetContent()
-    {
-        $loader = $this->getMock('Twig_LoaderInterface');
-        $loader->expects($this->once())
-            ->method('getSource')
-            ->with('asdf')
-            ->will($this->throwException(new \Twig_Error_Loader('')));
-
-        $resource = new TwigResource($loader, 'asdf');
-        $this->assertEquals('', $resource->getContent());
-    }
-
-    public function testInvalidTemplateNameIsFresh()
-    {
-        $loader = $this->getMock('Twig_LoaderInterface');
-        $loader->expects($this->once())
-            ->method('isFresh')
-            ->with('asdf', 1234)
-            ->will($this->throwException(new \Twig_Error_Loader('')));
-
-        $resource = new TwigResource($loader, 'asdf');
-        $this->assertFalse($resource->isFresh(1234));
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/absolute_path.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/absolute_path.twig
deleted file mode 100644
index 05dc382db7b7..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/absolute_path.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets '/path/to/something.css' as='foo' %}<asset url="{{ foo }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/combine.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/combine.twig
deleted file mode 100644
index e1ab5f9e4b13..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/combine.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets 'foo.css' 'bar.css' filter='?foo,bar' output='css/packed.css' debug=true combine=true %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/debug.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/debug.twig
deleted file mode 100644
index 550292ef1395..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/debug.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets 'foo.css' 'bar.css' filter='?foo,bar' output='css/packed.css' debug=true %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/filters.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/filters.twig
deleted file mode 100644
index d2113847d16d..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/filters.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets 'foo' filter='foo, bar' %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/function.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/function.twig
deleted file mode 100644
index 028419746e8a..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/function.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-    <asset url="{{ some_func('path/to/asset', { 'name': 'my_asset' }) }}" />
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/glob.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/glob.twig
deleted file mode 100644
index 4624933a6171..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/glob.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets 'css/src/*' %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/image.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/image.twig
deleted file mode 100644
index 902ecf0c4eab..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/image.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<images>
-{% image 'images/foo.png' %}<image url="{{ asset_url }}" />{% endimage %}
-</images>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/mixture.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/mixture.twig
deleted file mode 100644
index 482e6ece7da5..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/mixture.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets 'foo' 'foo/*' '@foo' output='packed/*' name='mixture' %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/optional_filter.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/optional_filter.twig
deleted file mode 100644
index 4a4dbb6de339..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/optional_filter.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets 'foo' filter='?foo' %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/output_pattern.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/output_pattern.twig
deleted file mode 100644
index cf85897641ea..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/output_pattern.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets 'foo' output='css/packed/*.css' %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/output_url.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/output_url.twig
deleted file mode 100644
index 51a2a2d65b09..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/output_url.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets 'foo' output='explicit_url.css' %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/reference.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/reference.twig
deleted file mode 100644
index 371c4b7e90aa..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/reference.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-<assets>
-{% stylesheets '@foo' %}<asset url="{{ asset_url }}" />{% endstylesheets %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/unclosed_tag.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/unclosed_tag.twig
deleted file mode 100644
index 6c1d30b9df78..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/unclosed_tag.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-<assets>
-{% block assets %}
-{% stylesheets 'foo.css' 'bar.css' filter='?foo,bar' output='css/packed.css' debug=true %}<asset url="{{ asset_url }}" />
-{% endblock %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/variables.twig b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/variables.twig
deleted file mode 100644
index 5d4d2ba53163..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Extension/Twig/templates/variables.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-<assets>
-    {% javascripts "foo.js" "variable_input.{foo}.js" vars=["foo", "bar"] debug=true %}
-    <url>{{ asset_url }}</url>
-    {% endjavascripts %}
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/AssetFactoryTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/AssetFactoryTest.php
deleted file mode 100644
index 7bfa8bc45d10..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/AssetFactoryTest.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Factory;
-
-use Assetic\Factory\AssetFactory;
-
-class AssetFactoryTest extends \PHPUnit_Framework_TestCase
-{
-    private $am;
-    private $fm;
-    private $factory;
-
-    protected function setUp()
-    {
-        $this->am = $this->getMock('Assetic\\AssetManager');
-        $this->fm = $this->getMock('Assetic\\FilterManager');
-
-        $this->factory = new AssetFactory(__DIR__);
-        $this->factory->setAssetManager($this->am);
-        $this->factory->setFilterManager($this->fm);
-    }
-
-    public function testNoAssetManagerReference()
-    {
-        $this->setExpectedException('LogicException', 'There is no asset manager.');
-
-        $factory = new AssetFactory('.');
-        $factory->createAsset(array('@foo'));
-    }
-
-    public function testNoAssetManagerNotReference()
-    {
-        $factory = new AssetFactory('.');
-        $this->assertInstanceOf('Assetic\\Asset\\AssetInterface', $factory->createAsset(array('foo')));
-    }
-
-    public function testNoFilterManager()
-    {
-        $this->setExpectedException('LogicException', 'There is no filter manager.');
-
-        $factory = new AssetFactory('.');
-        $factory->createAsset(array('foo'), array('foo'));
-    }
-
-    public function testCreateAssetReference()
-    {
-        $referenced = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $this->am->expects($this->any())
-            ->method('get')
-            ->with('jquery')
-            ->will($this->returnValue($referenced));
-
-        $assets = $this->factory->createAsset(array('@jquery'));
-        $arr = iterator_to_array($assets);
-        $this->assertInstanceOf('Assetic\\Asset\\AssetReference', $arr[0], '->createAsset() creates a reference');
-    }
-
-    /**
-     * @dataProvider getHttpUrls
-     */
-    public function testCreateHttpAsset($sourceUrl)
-    {
-        $assets = $this->factory->createAsset(array($sourceUrl));
-        $arr = iterator_to_array($assets);
-        $this->assertInstanceOf('Assetic\\Asset\\HttpAsset', $arr[0], '->createAsset() creates an HTTP asset');
-    }
-
-    public function getHttpUrls()
-    {
-        return array(
-            array('http://example.com/foo.css'),
-            array('https://example.com/foo.css'),
-            array('//example.com/foo.css'),
-        );
-    }
-
-    public function testCreateFileAsset()
-    {
-        $assets = $this->factory->createAsset(array(basename(__FILE__)));
-        $arr = iterator_to_array($assets);
-        $this->assertInstanceOf('Assetic\\Asset\\FileAsset', $arr[0], '->createAsset() creates a file asset');
-    }
-
-    public function testCreateGlobAsset()
-    {
-        $assets = $this->factory->createAsset(array('*'));
-        $arr = iterator_to_array($assets);
-        $this->assertInstanceOf('Assetic\\Asset\\FileAsset', $arr[0], '->createAsset() uses a glob to create a file assets');
-    }
-
-    public function testCreateAssetCollection()
-    {
-        $asset = $this->factory->createAsset(array('*', basename(__FILE__)));
-        $this->assertInstanceOf('Assetic\\Asset\\AssetCollection', $asset, '->createAsset() creates an asset collection');
-    }
-
-    public function testFilter()
-    {
-        $this->fm->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($this->getMock('Assetic\\Filter\\FilterInterface')));
-
-        $asset = $this->factory->createAsset(array(), array('foo'));
-        $this->assertEquals(1, count($asset->getFilters()), '->createAsset() adds filters');
-    }
-
-    public function testInvalidFilter()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-
-        $this->fm->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->throwException(new \InvalidArgumentException()));
-
-        $asset = $this->factory->createAsset(array(), array('foo'));
-    }
-
-    public function testOptionalInvalidFilter()
-    {
-        $this->factory->setDebug(true);
-
-        $asset = $this->factory->createAsset(array(), array('?foo'));
-
-        $this->assertEquals(0, count($asset->getFilters()), '->createAsset() does not add an optional invalid filter');
-    }
-
-    public function testIncludingOptionalFilter()
-    {
-        $this->fm->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($this->getMock('Assetic\\Filter\\FilterInterface')));
-
-        $this->factory->createAsset(array('foo.css'), array('?foo'));
-    }
-
-    public function testWorkers()
-    {
-        $worker = $this->getMock('Assetic\\Factory\\Worker\\WorkerInterface');
-
-        // called once on the collection and once on each leaf
-        $worker->expects($this->exactly(3))
-            ->method('process')
-            ->with($this->isInstanceOf('Assetic\\Asset\\AssetInterface'));
-
-        $this->factory->addWorker($worker);
-        $this->factory->createAsset(array('foo.js', 'bar.js'));
-    }
-
-    public function testWorkerReturn()
-    {
-        $worker = $this->getMock('Assetic\\Factory\\Worker\\WorkerInterface');
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $worker->expects($this->at(2))
-            ->method('process')
-            ->with($this->isInstanceOf('Assetic\\Asset\\AssetCollectionInterface'))
-            ->will($this->returnValue($asset));
-
-        $this->factory->addWorker($worker);
-        $coll = $this->factory->createAsset(array('foo.js', 'bar.js'));
-
-        $this->assertEquals(1, count(iterator_to_array($coll)));
-    }
-
-    public function testNestedFormula()
-    {
-        $this->fm->expects($this->once())
-            ->method('get')
-            ->with('foo')
-            ->will($this->returnValue($this->getMock('Assetic\\Filter\\FilterInterface')));
-
-        $inputs = array(
-            'css/main.css',
-            array(
-                // nested formula
-                array('css/more.sass'),
-                array('foo'),
-            ),
-        );
-
-        $asset = $this->factory->createAsset($inputs, array(), array('output' => 'css/*.css'));
-
-        $i = 0;
-        foreach ($asset as $leaf) {
-            $i++;
-        }
-
-        $this->assertEquals(2, $i);
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/LazyAssetManagerTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/LazyAssetManagerTest.php
deleted file mode 100644
index 46cdf94c2d71..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/LazyAssetManagerTest.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Factory;
-
-use Assetic\Factory\LazyAssetManager;
-
-class LazyAssetManagerTest extends \PHPUnit_Framework_TestCase
-{
-    private $factory;
-
-    protected function setUp()
-    {
-        $this->factory = $this->getMockBuilder('Assetic\\Factory\\AssetFactory')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->am = new LazyAssetManager($this->factory);
-    }
-
-    public function testGetFromLoader()
-    {
-        $resource = $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface');
-        $loader = $this->getMock('Assetic\\Factory\\Loader\\FormulaLoaderInterface');
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $formula = array(
-            array('js/core.js', 'js/more.js'),
-            array('?yui_js'),
-            array('output' => 'js/all.js')
-        );
-
-        $loader->expects($this->once())
-            ->method('load')
-            ->with($resource)
-            ->will($this->returnValue(array('foo' => $formula)));
-        $this->factory->expects($this->once())
-            ->method('createAsset')
-            ->with($formula[0], $formula[1], $formula[2] + array('name' => 'foo'))
-            ->will($this->returnValue($asset));
-
-        $this->am->setLoader('foo', $loader);
-        $this->am->addResource($resource, 'foo');
-
-        $this->assertSame($asset, $this->am->get('foo'), '->get() returns an asset from the loader');
-
-        // test the "once" expectations
-        $this->am->get('foo');
-    }
-
-    public function testGetResources()
-    {
-        $resources = array(
-            $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface'),
-            $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface'),
-        );
-
-        $this->am->addResource($resources[0], 'foo');
-        $this->am->addResource($resources[1], 'bar');
-
-        $ret = $this->am->getResources();
-
-        foreach ($resources as $resource) {
-            $this->assertTrue(in_array($resource, $ret, true));
-        }
-    }
-
-    public function testGetResourcesEmpty()
-    {
-        $this->am->getResources();
-    }
-
-    public function testSetFormula()
-    {
-        $this->am->setFormula('foo', array());
-        $this->am->load();
-        $this->assertTrue($this->am->hasFormula('foo'), '->load() does not remove manually added formulae');
-    }
-
-    public function testIsDebug()
-    {
-        $this->factory->expects($this->once())
-            ->method('isDebug')
-            ->will($this->returnValue(false));
-
-        $this->assertSame(false, $this->am->isDebug(), '->isDebug() proxies the factory');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/CachedFormulaLoaderTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/CachedFormulaLoaderTest.php
deleted file mode 100644
index 5253003b05d9..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/CachedFormulaLoaderTest.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Factory\Loader;
-
-use Assetic\Factory\Loader\CachedFormulaLoader;
-
-class CachedFormulaLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    protected $loader;
-    protected $configCache;
-    protected $resource;
-
-    protected function setUp()
-    {
-        $this->loader = $this->getMock('Assetic\\Factory\\Loader\\FormulaLoaderInterface');
-        $this->configCache = $this->getMockBuilder('Assetic\\Cache\\ConfigCache')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->resource = $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface');
-    }
-
-    public function testNotDebug()
-    {
-        $expected = array(
-            'foo' => array(array(), array(), array()),
-            'bar' => array(array(), array(), array()),
-        );
-
-        $this->configCache->expects($this->once())
-            ->method('has')
-            ->with($this->isType('string'))
-            ->will($this->returnValue(false));
-        $this->loader->expects($this->once())
-            ->method('load')
-            ->with($this->resource)
-            ->will($this->returnValue($expected));
-        $this->configCache->expects($this->once())
-            ->method('set')
-            ->with($this->isType('string'), $expected);
-
-        $loader = new CachedFormulaLoader($this->loader, $this->configCache);
-        $this->assertEquals($expected, $loader->load($this->resource), '->load() returns formulae');
-    }
-
-    public function testNotDebugCached()
-    {
-        $expected = array(
-            'foo' => array(array(), array(), array()),
-            'bar' => array(array(), array(), array()),
-        );
-
-        $this->configCache->expects($this->once())
-            ->method('has')
-            ->with($this->isType('string'))
-            ->will($this->returnValue(true));
-        $this->resource->expects($this->never())
-            ->method('isFresh');
-        $this->configCache->expects($this->once())
-            ->method('get')
-            ->with($this->isType('string'))
-            ->will($this->returnValue($expected));
-
-        $loader = new CachedFormulaLoader($this->loader, $this->configCache);
-        $this->assertEquals($expected, $loader->load($this->resource), '->load() returns formulae');
-    }
-
-    public function testDebugCached()
-    {
-        $timestamp = 123;
-        $expected = array(
-            'foo' => array(array(), array(), array()),
-            'bar' => array(array(), array(), array()),
-        );
-
-        $this->configCache->expects($this->once())
-            ->method('has')
-            ->with($this->isType('string'))
-            ->will($this->returnValue(true));
-        $this->configCache->expects($this->once())
-            ->method('getTimestamp')
-            ->with($this->isType('string'))
-            ->will($this->returnValue($timestamp));
-        $this->resource->expects($this->once())
-            ->method('isFresh')
-            ->with($timestamp)
-            ->will($this->returnValue(true));
-        $this->loader->expects($this->never())
-            ->method('load');
-        $this->configCache->expects($this->once())
-            ->method('get')
-            ->with($this->isType('string'))
-            ->will($this->returnValue($expected));
-
-        $loader = new CachedFormulaLoader($this->loader, $this->configCache, true);
-        $this->assertEquals($expected, $loader->load($this->resource), '->load() returns formulae');
-    }
-
-    public function testDebugCachedStale()
-    {
-        $timestamp = 123;
-        $expected = array(
-            'foo' => array(array(), array(), array()),
-            'bar' => array(array(), array(), array()),
-        );
-
-        $this->configCache->expects($this->once())
-            ->method('has')
-            ->with($this->isType('string'))
-            ->will($this->returnValue(true));
-        $this->configCache->expects($this->once())
-            ->method('getTimestamp')
-            ->with($this->isType('string'))
-            ->will($this->returnValue($timestamp));
-        $this->resource->expects($this->once())
-            ->method('isFresh')
-            ->with($timestamp)
-            ->will($this->returnValue(false));
-        $this->loader->expects($this->once())
-            ->method('load')
-            ->with($this->resource)
-            ->will($this->returnValue($expected));
-        $this->configCache->expects($this->once())
-            ->method('set')
-            ->with($this->isType('string'), $expected);
-
-        $loader = new CachedFormulaLoader($this->loader, $this->configCache, true);
-        $this->assertEquals($expected, $loader->load($this->resource), '->load() returns formulae');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/FunctionCallsFormulaLoaderTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/FunctionCallsFormulaLoaderTest.php
deleted file mode 100644
index 6b631bf50562..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/FunctionCallsFormulaLoaderTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Factory\Loader;
-
-use Assetic\Factory\AssetFactory;
-use Assetic\Factory\Loader\FunctionCallsFormulaLoader;
-use Assetic\Factory\Resource\FileResource;
-
-class FunctionCallsFormulaLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getJavascriptInputs
-     */
-    public function testInput($function, $inputs, $name, $expected)
-    {
-        $resource = $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface');
-        $factory = $this->getMockBuilder('Assetic\\Factory\\AssetFactory')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $resource->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue('<?php '.$function.'('.$inputs.') ?>'));
-        $factory->expects($this->once())
-            ->method('generateAssetName')
-            ->will($this->returnValue($name));
-
-        $loader = new FunctionCallsFormulaLoader($factory);
-        $formulae = $loader->load($resource);
-
-        $this->assertEquals($expected, $formulae);
-    }
-
-    public function getJavascriptInputs()
-    {
-        return array(
-            array('assetic_javascripts', '"js/core.js"',        'asdf', array('asdf' => array(array('js/core.js'), array(), array('debug' => false, 'output' => 'js/*.js', 'name' => 'asdf', )))),
-            array('assetic_javascripts', "'js/core.js'",        'asdf', array('asdf' => array(array('js/core.js'), array(), array('debug' => false, 'output' => 'js/*.js', 'name' => 'asdf', )))),
-            array('assetic_javascripts', "array('js/core.js')", 'asdf', array('asdf' => array(array('js/core.js'), array(), array('debug' => false, 'output' => 'js/*.js', 'name' => 'asdf', )))),
-            array('assetic_javascripts', 'array("js/core.js")', 'asdf', array('asdf' => array(array('js/core.js'), array(), array('debug' => false, 'output' => 'js/*.js', 'name' => 'asdf', )))),
-            array('assetic_image',       '"images/logo.gif"',   'asdf', array('asdf' => array(array('images/logo.gif'), array(), array('debug' => false, 'output' => 'images/*', 'name' => 'asdf')))),
-        );
-    }
-
-    public function testComplexFormula()
-    {
-        $factory  = new AssetFactory(__DIR__.'/templates', true);
-        $loader   = new FunctionCallsFormulaLoader($factory);
-        $resource = new FileResource(__DIR__.'/templates/debug.php');
-        $formulae = $loader->load($resource);
-
-        $this->assertEquals(array(
-            'test123' => array(
-                array('foo.css', 'bar.css'),
-                array('?foo', 'bar'),
-                array('name' => 'test123', 'output' => 'css/packed.css', 'debug' => true),
-            ),
-        ), $formulae);
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/templates/debug.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/templates/debug.php
deleted file mode 100644
index 750c25d8da6f..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Loader/templates/debug.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<assets>
-    <?php foreach (assetic_stylesheets(
-        array('foo.css', 'bar.css'),
-        array('?foo', 'bar'),
-        array('name' => 'test123', 'output' => 'css/packed.css', 'debug' => true)) as $url): ?>
-        <asset url="<?php echo $url ?>" />
-    <?php endforeach; ?>
-</assets>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/CoalescingDirectoryResourceTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/CoalescingDirectoryResourceTest.php
deleted file mode 100644
index 32e8887efe61..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/CoalescingDirectoryResourceTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Factory\Resource;
-
-use Assetic\Factory\Resource\CoalescingDirectoryResource;
-use Assetic\Factory\Resource\DirectoryResource;
-
-class CoalescingDirectoryResourceTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @test
-     */
-    public function shouldFilterFiles()
-    {
-        // notice only one directory has a trailing slash
-        $resource = new CoalescingDirectoryResource(array(
-            new DirectoryResource(__DIR__.'/Fixtures/dir1/', '/\.txt$/'),
-            new DirectoryResource(__DIR__.'/Fixtures/dir2', '/\.txt$/'),
-        ));
-
-        $paths = array();
-        foreach ($resource as $file) {
-            $paths[] = realpath((string) $file);
-        }
-        sort($paths);
-
-        $this->assertEquals(array(
-            realpath(__DIR__.'/Fixtures/dir1/file1.txt'),
-            realpath(__DIR__.'/Fixtures/dir1/file2.txt'),
-            realpath(__DIR__.'/Fixtures/dir2/file3.txt'),
-        ), $paths, 'files from multiple directories are merged');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/DirectoryResourceTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/DirectoryResourceTest.php
deleted file mode 100644
index ccb073d385df..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/DirectoryResourceTest.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Factory\Resource;
-
-use Assetic\Factory\Resource\DirectoryResource;
-
-class DirectoryResourceTest extends \PHPUnit_Framework_TestCase
-{
-    public function testIsFresh()
-    {
-        $resource = new DirectoryResource(__DIR__);
-        $this->assertTrue($resource->isFresh(time() + 5));
-        $this->assertFalse($resource->isFresh(0));
-    }
-
-    /**
-     * @dataProvider getPatterns
-     */
-    public function testGetContent($pattern)
-    {
-        $resource = new DirectoryResource(__DIR__, $pattern);
-        $content = $resource->getContent();
-
-        $this->assertInternalType('string', $content);
-    }
-
-    public function getPatterns()
-    {
-        return array(
-            array(null),
-            array('/\.php$/'),
-            array('/\.foo$/'),
-        );
-    }
-
-    /**
-     * @dataProvider getPatternsAndEmpty
-     */
-    public function testIteration($pattern, $empty)
-    {
-        $resource = new DirectoryResource(__DIR__, $pattern);
-
-        $count = 0;
-        foreach ($resource as $r) {
-            ++$count;
-            $this->assertInstanceOf('Assetic\\Factory\\Resource\\ResourceInterface', $r);
-        }
-
-        if ($empty) {
-            $this->assertEmpty($count);
-        } else {
-            $this->assertNotEmpty($count);
-        }
-    }
-
-    public function getPatternsAndEmpty()
-    {
-        return array(
-            array(null, false),
-            array('/\.php$/', false),
-            array('/\.foo$/', true),
-        );
-    }
-
-    public function testRecursiveIteration()
-    {
-        $resource = new DirectoryResource(realpath(__DIR__.'/..'), '/^'.preg_quote(basename(__FILE__)).'$/');
-
-        $count = 0;
-        foreach ($resource as $r) {
-            ++$count;
-        }
-
-        $this->assertEquals(1, $count);
-    }
-
-    /**
-     * @dataProvider getPaths
-     */
-    public function testTrailingSlash($path)
-    {
-        $resource = new DirectoryResource($path);
-        $this->assertStringEndsWith(DIRECTORY_SEPARATOR, (string) $resource, 'path ends with a slash');
-    }
-
-    public function getPaths()
-    {
-        return array(
-            array(__DIR__),
-            array(__DIR__.DIRECTORY_SEPARATOR),
-        );
-    }
-
-    public function testInvalidDirectory()
-    {
-        $resource = new DirectoryResource(__DIR__.'foo');
-        $this->assertEquals(0, iterator_count($resource), 'works for non-existent directory');
-    }
-
-    public function testFollowSymlinks()
-    {
-        // Create the symlink if it doesn't already exist yet (if someone broke the entire testsuite perhaps)
-        if (!is_dir(__DIR__.'/Fixtures/dir3')) {
-            symlink(__DIR__.'/Fixtures/dir2', __DIR__.'/Fixtures/dir3');
-        }
-
-        $resource = new DirectoryResource(__DIR__.'/Fixtures');
-
-        $count = 0;
-        foreach ($resource as $r) {
-            ++$count;
-        }
-
-        $this->assertEquals(6, $count);
-    }
-
-    public function tearDown()
-    {
-        if (is_dir(__DIR__.'/Fixtures/dir3')) {
-            unlink(__DIR__.'/Fixtures/dir3');
-        }
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/FileResourceTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/FileResourceTest.php
deleted file mode 100644
index 4864c8016eae..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/FileResourceTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Factory\Resource;
-
-use Assetic\Factory\Resource\FileResource;
-
-class FileResourceTest extends \PHPUnit_Framework_TestCase
-{
-    public function testIsFresh()
-    {
-        $resource = new FileResource(__FILE__);
-        $this->assertTrue($resource->isFresh(time() + 5));
-        $this->assertFalse($resource->isFresh(0));
-    }
-
-    public function testGetContent()
-    {
-        $resource = new FileResource(__FILE__);
-        $this->assertEquals(file_get_contents(__FILE__), $resource->getContent());
-    }
-
-    public function testIsFreshOnInvalidPath()
-    {
-        $resource = new FileResource(__FILE__.'foo');
-        $this->assertFalse($resource->isFresh(time()), '->isFresh() returns false if the file does not exist');
-    }
-
-    public function testGetContentOnInvalidPath()
-    {
-        $resource = new FileResource(__FILE__.'foo');
-        $this->assertSame('', $resource->getContent(), '->getContent() returns an empty string when path is invalid');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir1/file1.txt b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir1/file1.txt
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir1/file2.txt b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir1/file2.txt
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir2/file1.txt b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir2/file1.txt
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir2/file3.txt b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Resource/Fixtures/dir2/file3.txt
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Worker/EnsureFilterWorkerTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Worker/EnsureFilterWorkerTest.php
deleted file mode 100644
index bdcffe549bfc..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Factory/Worker/EnsureFilterWorkerTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Factory\Worker;
-
-use Assetic\Factory\Worker\EnsureFilterWorker;
-
-class EnsureFilterWorkerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testMatch()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $asset->expects($this->once())
-            ->method('getTargetPath')
-            ->will($this->returnValue('css/main.css'));
-        $asset->expects($this->once())
-            ->method('ensureFilter')
-            ->with($filter);
-
-        $worker = new EnsureFilterWorker('/\.css$/', $filter);
-        $worker->process($asset);
-    }
-
-    public function testNonMatch()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $asset->expects($this->once())
-            ->method('getTargetPath')
-            ->will($this->returnValue('js/all.js'));
-        $asset->expects($this->never())->method('ensureFilter');
-
-        $worker = new EnsureFilterWorker('/\.css$/', $filter);
-        $worker->process($asset);
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/BaseImageFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/BaseImageFilterTest.php
deleted file mode 100644
index 78332599d216..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/BaseImageFilterTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-abstract class BaseImageFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public static function assertMimeType($expected, $data, $message = null)
-    {
-        $finfo = new \finfo(FILEINFO_MIME_TYPE);
-
-        $actual = file_exists($data) ? $finfo->file($data) : $finfo->buffer($data);
-
-        self::assertEquals($expected, $actual, $message);
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CallablesFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CallablesFilterTest.php
deleted file mode 100644
index 9dd9952409a7..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CallablesFilterTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Filter\CallablesFilter;
-
-class CallablesFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $filter = new CallablesFilter();
-        $this->assertInstanceOf('Assetic\\Filter\\FilterInterface', $filter, 'CallablesFilter implements FilterInterface');
-    }
-
-    public function testLoader()
-    {
-        $nb = 0;
-        $filter = new CallablesFilter(function($asset) use (&$nb) { $nb++; });
-        $filter->filterLoad($this->getMock('Assetic\\Asset\\AssetInterface'));
-        $this->assertEquals(1, $nb, '->filterLoad() calls the loader callable');
-    }
-
-    public function testDumper()
-    {
-        $nb = 0;
-        $filter = new CallablesFilter(null, function($asset) use (&$nb) { $nb++; });
-        $filter->filterDump($this->getMock('Assetic\\Asset\\AssetInterface'));
-        $this->assertEquals(1, $nb, '->filterDump() calls the loader callable');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CoffeeScriptFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CoffeeScriptFilterTest.php
deleted file mode 100644
index 5c46cefad4e9..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CoffeeScriptFilterTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\CoffeeScriptFilter;
-
-/**
- * @group integration
- */
-class CoffeeScriptFilterTest extends \PHPUnit_Framework_TestCase
-{
-    private $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['COFFEE_BIN']) || !isset($_SERVER['NODE_BIN'])) {
-            $this->markTestSkipped('There is no COFFEE_BIN or NODE_BIN environment variable.');
-        }
-
-        $this->filter = new CoffeeScriptFilter($_SERVER['COFFEE_BIN'], $_SERVER['NODE_BIN']);
-    }
-
-    public function testFilterLoad()
-    {
-        $expected = <<<JAVASCRIPT
-(function() {
-  var square;
-
-  square = function(x) {
-    return x * x;
-  };
-
-}).call(this);
-
-JAVASCRIPT;
-
-        $asset = new StringAsset('square = (x) -> x * x');
-        $asset->load();
-
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals($expected, $asset->getContent());
-    }
-
-    public function testBare()
-    {
-        $expected = <<<JAVASCRIPT
-var square;
-
-square = function(x) {
-  return x * x;
-};
-
-JAVASCRIPT;
-        $asset = new StringAsset('square = (x) -> x * x');
-        $asset->load();
-
-        $this->filter->setBare(true);
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals($expected, $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CompassFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CompassFilterTest.php
deleted file mode 100644
index 4231e8a72579..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CompassFilterTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\CompassFilter;
-
-/**
- * Compass filter test case.
- *
- * @author Maxime Thirouin <dev@moox.fr>
- * @group integration
- */
-class CompassFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!isset($_SERVER['COMPASS_BIN'])) {
-            $this->markTestSkipped('There is no COMPASS_BIN environment variable.');
-        }
-    }
-
-    public function testFilterLoadWithScss()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/compass/stylesheet.scss');
-        $asset->load();
-
-        $filter = new CompassFilter($_SERVER['COMPASS_BIN']);
-        $filter->filterLoad($asset);
-
-        $this->assertContains('.test-class', $asset->getContent());
-        $this->assertContains('font-size: 2em;', $asset->getContent());
-    }
-
-    public function testFilterLoadWithSass()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/compass/stylesheet.sass');
-        $asset->load();
-
-        $filter = new CompassFilter($_SERVER['COMPASS_BIN']);
-        $filter->filterLoad($asset);
-
-        $this->assertContains('.test-class', $asset->getContent());
-        $this->assertContains('font-size: 2em;', $asset->getContent());
-    }
-
-    public function testCompassMixin()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/compass/compass.sass');
-        $asset->load();
-
-        $filter = new CompassFilter($_SERVER['COMPASS_BIN']);
-        $filter->filterLoad($asset);
-
-        $this->assertContains('text-decoration', $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssEmbedFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssEmbedFilterTest.php
deleted file mode 100644
index 579abf273454..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssEmbedFilterTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\CssEmbedFilter;
-
-/**
- * @group integration
- */
-class CssEmbedFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!isset($_SERVER['CSSEMBED_JAR'])) {
-            $this->markTestSkipped('There is no CSSEMBED_JAR environment variable.');
-        }
-    }
-
-    public function testCssEmbedDataUri()
-    {
-        $data = base64_encode(file_get_contents(__DIR__.'/fixtures/home.png'));
-
-        $asset = new FileAsset(__DIR__ . '/fixtures/cssembed/test.css');
-        $asset->load();
-
-        $filter = new CssEmbedFilter($_SERVER['CSSEMBED_JAR']);
-        $filter->filterDump($asset);
-
-        $this->assertContains('url(data:image/png;base64,'.$data, $asset->getContent());
-    }
-
-    public function testCssEmbedMhtml()
-    {
-        $asset = new FileAsset(__DIR__ . '/fixtures/cssembed/test.css');
-        $asset->load();
-
-        $filter = new CssEmbedFilter($_SERVER['CSSEMBED_JAR']);
-        $filter->setMhtml(true);
-        $filter->setMhtmlRoot('/test');
-        $filter->filterDump($asset);
-
-        $this->assertContains('url(mhtml:/test/!', $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssImportFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssImportFilterTest.php
deleted file mode 100644
index ecde8e15daa6..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssImportFilterTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\CssImportFilter;
-use Assetic\Filter\CssRewriteFilter;
-
-class CssImportFilterTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getFilters
-     */
-    public function testImport($filter1, $filter2)
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/cssimport/main.css', array(), __DIR__.'/fixtures/cssimport', 'main.css');
-        $asset->setTargetPath('foo/bar.css');
-        $asset->ensureFilter($filter1);
-        $asset->ensureFilter($filter2);
-
-        $expected = <<<CSS
-/* main.css */
-/* import.css */
-body { color: red; }
-/* more/evenmore/deep1.css */
-/* more/evenmore/deep2.css */
-body {
-    background: url(../more/evenmore/bg.gif);
-}
-body { color: black; }
-CSS;
-
-        $this->assertEquals($expected, $asset->dump(), '->filterLoad() inlines CSS imports');
-    }
-
-    /**
-     * The order of these two filters is only interchangeable because one acts on
-     * load and the other on dump. We need a more scalable solution.
-     */
-    public function getFilters()
-    {
-        return array(
-            array(new CssImportFilter(), new CssRewriteFilter()),
-            array(new CssRewriteFilter(), new CssImportFilter()),
-        );
-    }
-
-    public function testNonCssImport()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/cssimport/noncssimport.css', array(), __DIR__.'/fixtures/cssimport', 'noncssimport.css');
-        $asset->load();
-
-        $filter = new CssImportFilter();
-        $filter->filterLoad($asset);
-
-        $this->assertEquals(file_get_contents(__DIR__.'/fixtures/cssimport/noncssimport.css'), $asset->getContent(), '->filterLoad() skips non css');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssMinFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssMinFilterTest.php
deleted file mode 100644
index abba852653d3..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssMinFilterTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\CssMinFilter;
-
-/**
- * @group integration
- */
-class CssMinFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('CssMin')) {
-            $this->markTestSkipped('CssMin is not installed.');
-        }
-    }
-
-    public function testRelativeSourceUrlImportImports()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/cssmin/main.css');
-        $asset->load();
-
-        $filter = new CssMinFilter(__DIR__.'/fixtures/cssmin');
-        $filter->setFilter('ImportImports', true);
-        $filter->filterDump($asset);
-
-        $this->assertEquals('body{color:white}body{background:black}', $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssRewriteFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssRewriteFilterTest.php
deleted file mode 100644
index 53766bc6374a..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/CssRewriteFilterTest.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\CssRewriteFilter;
-
-class CssRewriteFilterTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideUrls
-     */
-    public function testUrls($format, $sourcePath, $targetPath, $inputUrl, $expectedUrl)
-    {
-        $asset = new StringAsset(sprintf($format, $inputUrl), array(), null, $sourcePath);
-        $asset->setTargetPath($targetPath);
-        $asset->load();
-
-        $filter = new CssRewriteFilter();
-        $filter->filterLoad($asset);
-        $filter->filterDump($asset);
-
-        $this->assertEquals(sprintf($format, $expectedUrl), $asset->getContent(), '->filterDump() rewrites relative urls');
-    }
-
-    public function provideUrls()
-    {
-        return array(
-            // url variants
-            array('body { background: url(%s); }', 'css/body.css', 'css/build/main.css', '../images/bg.gif', '../../images/bg.gif'),
-            array('body { background: url("%s"); }', 'css/body.css', 'css/build/main.css', '../images/bg.gif', '../../images/bg.gif'),
-            array('body { background: url(\'%s\'); }', 'css/body.css', 'css/build/main.css', '../images/bg.gif', '../../images/bg.gif'),
-
-            //url with data:
-            array('body { background: url(\'%s\'); }', 'css/body.css', 'css/build/main.css', 'data:image/png;base64,abcdef=', 'data:image/png;base64,abcdef='),
-            array('body { background: url(\'%s\'); }', 'css/body.css', 'css/build/main.css', '../images/bg-data:.gif', '../../images/bg-data:.gif'),
-
-            // @import variants
-            array('@import "%s";', 'css/imports.css', 'css/build/main.css', 'import.css', '../import.css'),
-            array('@import url(%s);', 'css/imports.css', 'css/build/main.css', 'import.css', '../import.css'),
-            array('@import url("%s");', 'css/imports.css', 'css/build/main.css', 'import.css', '../import.css'),
-            array('@import url(\'%s\');', 'css/imports.css', 'css/build/main.css', 'import.css', '../import.css'),
-
-            // path diffs
-            array('body { background: url(%s); }', 'css/body/bg.css', 'css/build/main.css', '../../images/bg.gif', '../../images/bg.gif'),
-            array('body { background: url(%s); }', 'css/body.css', 'main.css', '../images/bg.gif', 'images/bg.gif'),
-            array('body { background: url(%s); }', 'body.css', 'css/main.css', 'images/bg.gif', '../images/bg.gif'),
-            array('body { background: url(%s); }', 'source/css/body.css', 'output/build/main.css', '../images/bg.gif', '../../source/images/bg.gif'),
-            array('body { background: url(%s); }', 'css/body.css', 'css/build/main.css', '//example.com/images/bg.gif', '//example.com/images/bg.gif'),
-
-            // url diffs
-            array('body { background: url(%s); }', 'css/body.css', 'css/build/main.css', 'http://foo.com/bar.gif', 'http://foo.com/bar.gif'),
-            array('body { background: url(%s); }', 'css/body.css', 'css/build/main.css', '/images/foo.gif', '/images/foo.gif'),
-            array('body { background: url(%s); }', 'css/body.css', 'css/build/main.css', 'http://foo.com/images/foo.gif', 'http://foo.com/images/foo.gif'),
-
-            // IE AlphaImageLoader filter
-            array('.fix { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'%s\'); }', 'css/ie.css', 'css/build/ie.css', '../images/fix.png', '../../images/fix.png'),
-        );
-    }
-
-    /**
-     * @dataProvider provideMultipleUrls
-     */
-    public function testMultipleUrls($format, $sourcePath, $targetPath, $inputUrl1, $inputUrl2, $expectedUrl1, $expectedUrl2)
-    {
-        $asset = new StringAsset(sprintf($format, $inputUrl1, $inputUrl2), array(), null, $sourcePath);
-        $asset->setTargetPath($targetPath);
-        $asset->load();
-
-        $filter = new CssRewriteFilter();
-        $filter->filterLoad($asset);
-        $filter->filterDump($asset);
-
-        $this->assertEquals(sprintf($format, $expectedUrl1, $expectedUrl2), $asset->getContent(), '->filterDump() rewrites relative urls');
-    }
-
-    public function provideMultipleUrls()
-    {
-        return array(
-            // multiple url
-            array('body { background: url(%s); background: url(%s); }', 'css/body.css', 'css/build/main.css', '../images/bg.gif', '../images/bg2.gif', '../../images/bg.gif', '../../images/bg2.gif'),
-            array("body { background: url(%s);\nbackground: url(%s); }", 'css/body.css', 'css/build/main.css', '../images/bg.gif', '../images/bg2.gif', '../../images/bg.gif', '../../images/bg2.gif'),
-
-            // multiple import
-            array('@import "%s"; @import "%s";', 'css/imports.css', 'css/build/main.css', 'import.css', 'import2.css', '../import.css', '../import2.css'),
-            array("@import \"%s\";\n@import \"%s\";", 'css/imports.css', 'css/build/main.css', 'import.css', 'import2.css', '../import.css', '../import2.css'),
-
-            // mixed urls and imports
-            array('@import "%s"; body { background: url(%s); }', 'css/body.css', 'css/build/main.css', 'import.css', '../images/bg2.gif', '../import.css', '../../images/bg2.gif'),
-            array("@import \"%s\";\nbody { background: url(%s); }", 'css/body.css', 'css/build/main.css', 'import.css', '../images/bg2.gif', '../import.css', '../../images/bg2.gif'),
-        );
-    }
-
-    public function testNoTargetPath()
-    {
-        $content = 'body { background: url(foo.gif); }';
-
-        $asset = new StringAsset($content);
-        $asset->load();
-
-        $filter = new CssRewriteFilter();
-        $filter->filterDump($asset);
-
-        $this->assertEquals($content, $asset->getContent(), '->filterDump() urls are not changed without urls');
-    }
-
-    public function testExternalSource()
-    {
-        $asset = new StringAsset('body { background: url(../images/bg.gif); }', array(), 'http://www.example.com', 'css/main.css');
-        $asset->setTargetPath('css/packed/main.css');
-        $asset->load();
-
-        $filter = new CssRewriteFilter();
-        $filter->filterDump($asset);
-
-        $this->assertContains('http://www.example.com/images/bg.gif', $asset->getContent(), '->filterDump() rewrites references in external stylesheets');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/FilterCollectionTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/FilterCollectionTest.php
deleted file mode 100644
index 277c773bd55e..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/FilterCollectionTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Filter\FilterCollection;
-
-class FilterCollectionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $filter = new FilterCollection();
-        $this->assertInstanceOf('Assetic\\Filter\\FilterInterface', $filter, 'FilterCollection implements FilterInterface');
-    }
-
-    public function testEnsure()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
-
-        $filter->expects($this->once())->method('filterLoad');
-
-        $coll = new FilterCollection();
-        $coll->ensure($filter);
-        $coll->ensure($filter);
-        $coll->filterLoad($asset);
-    }
-
-    public function testAll()
-    {
-        $filter = new FilterCollection(array(
-            $this->getMock('Assetic\\Filter\\FilterInterface'),
-            $this->getMock('Assetic\\Filter\\FilterInterface'),
-        ));
-
-        $this->assertInternalType('array', $filter->all(), '->all() returns an array');
-    }
-
-    public function testEmptyAll()
-    {
-        $filter = new FilterCollection();
-        $this->assertInternalType('array', $filter->all(), '->all() returns an array');
-    }
-
-    public function testCountable()
-    {
-        $filters = new FilterCollection(array($this->getMock('Assetic\\Filter\\FilterInterface')));
-
-        $this->assertEquals(1, count($filters), 'Countable returns the count');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GoogleClosure/CompilerApiFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GoogleClosure/CompilerApiFilterTest.php
deleted file mode 100644
index d6f23dba232c..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GoogleClosure/CompilerApiFilterTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter\GoogleClosure;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\GoogleClosure\CompilerApiFilter;
-
-/**
- * @group integration
- */
-class CompilerApiFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRoundTrip()
-    {
-        $input = <<<EOF
-(function() {
-function unused(){}
-function foo(bar)
-{
-    var foo = 'foo';
-
-    return foo + bar;
-}
-alert(foo("bar"));
-})();
-EOF;
-
-        $expected = <<<EOF
-(function() {
-  alert("foobar")
-})();
-
-EOF;
-
-        $asset = new StringAsset($input);
-        $asset->load();
-
-        $filter = new CompilerApiFilter();
-        $filter->setCompilationLevel(CompilerApiFilter::COMPILE_SIMPLE_OPTIMIZATIONS);
-        $filter->setJsExterns('');
-        $filter->setExternsUrl('');
-        $filter->setExcludeDefaultExterns(true);
-        $filter->setFormatting(CompilerApiFilter::FORMAT_PRETTY_PRINT);
-        $filter->setUseClosureLibrary(false);
-        $filter->setWarningLevel(CompilerApiFilter::LEVEL_VERBOSE);
-
-        $filter->filterLoad($asset);
-        $filter->filterDump($asset);
-
-        $this->assertEquals($expected, $asset->getContent());
-
-
-        $input = <<<EOF
-(function() {
-    var int = 123;
-    console.log(int);
-})();
-EOF;
-
-        $expected = <<<EOF
-(function() {
-  console.log(123)
-})();
-
-EOF;
-
-        $asset = new StringAsset($input);
-        $asset->load();
-
-        $filter->setLanguage(CompilerApiFilter::LANGUAGE_ECMASCRIPT5);
-
-        $filter->filterLoad($asset);
-        $filter->filterDump($asset);
-
-        $this->assertEquals($expected, $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GoogleClosure/CompilerJarFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GoogleClosure/CompilerJarFilterTest.php
deleted file mode 100644
index d7707a6b0962..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GoogleClosure/CompilerJarFilterTest.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter\GoogleClosure;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\GoogleClosure\CompilerJarFilter;
-
-/**
- * @group integration
- */
-class CompilerJarFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCompile()
-    {
-        if (!isset($_SERVER['CLOSURE_JAR'])) {
-            $this->markTestSkipped('There is no CLOSURE_JAR environment variable.');
-        }
-
-        $input = <<<EOF
-(function() {
-function unused(){}
-function foo(bar)
-{
-    var foo = 'foo';
-
-    return foo + bar;
-}
-alert(foo("bar"));
-})();
-EOF;
-
-        $expected = <<<EOF
-(function(){alert("foobar")})();
-
-EOF;
-
-        $asset = new StringAsset($input);
-        $asset->load();
-
-        $filter = new CompilerJarFilter($_SERVER['CLOSURE_JAR']);
-        $filter->filterLoad($asset);
-        $filter->filterDump($asset);
-
-        $this->assertEquals($expected, $asset->getContent());
-
-
-        $input = <<<EOF
-(function() {
-    var int = 123;
-    console.log(int);
-})();
-EOF;
-
-        $expected = <<<EOF
-(function(){console.log(123)})();
-
-EOF;
-
-        $asset = new StringAsset($input);
-        $asset->load();
-
-        $filter->setLanguage(CompilerJarFilter::LANGUAGE_ECMASCRIPT5);
-
-        $filter->filterLoad($asset);
-        $filter->filterDump($asset);
-
-        $this->assertEquals($expected, $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GssFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GssFilterTest.php
deleted file mode 100644
index 2b4c7bcc841a..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/GssFilterTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter\GoogleClosure;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\GssFilter;
-
-/**
- * @group integration
- */
-class GssFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCompile()
-    {
-        if (!isset($_SERVER['GSS_JAR'])) {
-            $this->markTestSkipped('There is no GSS_JAR environment variable.');
-        }
-
-        $input = <<<EOF
-@def BG_COLOR rgb(235, 239, 249);
-body {background-color: BG_COLOR;}
-EOF;
-
-        $expected = <<<EOF
-body{background-color:#ebeff9}
-EOF;
-
-        $asset = new StringAsset($input);
-        $asset->load();
-
-        $filter = new GssFilter($_SERVER['GSS_JAR']);
-        $filter->filterLoad($asset);
-
-        $this->assertEquals($expected, $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JSMinFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JSMinFilterTest.php
deleted file mode 100644
index b0d6c211e19b..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JSMinFilterTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\JSMinFilter;
-
-/**
- * @group integration
- */
-class JSMinFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('JSMin')) {
-            $this->markTestSkipped('JSMin is not installed.');
-        }
-    }
-
-    public function testRelativeSourceUrlImportImports()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/jsmin/js.js');
-        $asset->load();
-
-        $filter = new JSMinFilter();
-        $filter->filterDump($asset);
-
-        $this->assertEquals('var a="abc";;;var bbb="u";', $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JSMinPlusFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JSMinPlusFilterTest.php
deleted file mode 100644
index 72e769a8ba94..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JSMinPlusFilterTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\JSMinPlusFilter;
-
-/**
- * @group integration
- */
-class JSMinPlusFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('JSMinPlus')) {
-            $this->markTestSkipped('JSMinPlus is not installed.');
-        }
-    }
-
-    public function testRelativeSourceUrlImportImports()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/jsmin/js.js');
-        $asset->load();
-
-        $filter = new JSMinPlusFilter();
-        $filter->filterDump($asset);
-
-        $this->assertEquals('var a="abc",bbb="u"', $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JpegoptimFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JpegoptimFilterTest.php
deleted file mode 100644
index d0a67612b9f1..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JpegoptimFilterTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\JpegoptimFilter;
-
-/**
- * @group integration
- */
-class JpegoptimFilterTest extends BaseImageFilterTest
-{
-    private $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['JPEGOPTIM_BIN'])) {
-            $this->markTestSkipped('No jpegoptim configuration.');
-        }
-
-        $this->filter = new JpegoptimFilter($_SERVER['JPEGOPTIM_BIN']);
-    }
-
-    public function testFilter()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/home.jpg');
-        $asset->load();
-
-        $before = $asset->getContent();
-        $this->filter->filterDump($asset);
-
-        $this->assertNotEmpty($asset->getContent(), '->filterLoad() sets content');
-        $this->assertNotEquals($before, $asset->getContent(), '->filterDump() changes the content');
-        $this->assertMimeType('image/jpeg', $asset->getContent(), '->filterDump() creates JPEG data');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JpegtranFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JpegtranFilterTest.php
deleted file mode 100644
index 10245f686a66..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/JpegtranFilterTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\JpegtranFilter;
-
-/**
- * @group integration
- */
-class JpegtranFilterTest extends BaseImageFilterTest
-{
-    private $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['JPEGTRAN_BIN'])) {
-            $this->markTestSkipped('No jpegtran configuration.');
-        }
-
-        $this->filter = new JpegtranFilter($_SERVER['JPEGTRAN_BIN']);
-    }
-
-    public function testFilter()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/home.jpg');
-        $asset->load();
-
-        $before = $asset->getContent();
-        $this->filter->filterDump($asset);
-
-        $this->assertNotEmpty($asset->getContent(), '->filterLoad() sets content');
-        $this->assertNotEquals($before, $asset->getContent(), '->filterDump() changes the content');
-        $this->assertMimeType('image/jpeg', $asset->getContent(), '->filterDump() creates JPEG data');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/LessFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/LessFilterTest.php
deleted file mode 100644
index 41719902a319..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/LessFilterTest.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\LessFilter;
-
-/**
- * @group integration
- */
-class LessFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['NODE_BIN']) || !isset($_SERVER['NODE_PATH'])) {
-            $this->markTestSkipped('No node.js configuration.');
-        }
-
-        $this->filter = new LessFilter($_SERVER['NODE_BIN'], array($_SERVER['NODE_PATH']));
-    }
-
-    public function testFilterLoad()
-    {
-        $asset = new StringAsset('.foo{.bar{width:1+1;}}');
-        $asset->load();
-
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals(".foo .bar {\n  width: 2;\n}\n", $asset->getContent(), '->filterLoad() parses the content');
-    }
-
-    public function testImport()
-    {
-        $expected = <<<EOF
-.foo {
-  color: blue;
-}
-.foo {
-  color: red;
-}
-
-EOF;
-
-        $asset = new FileAsset(__DIR__.'/fixtures/less/main.less');
-        $asset->load();
-
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals($expected, $asset->getContent(), '->filterLoad() sets an include path based on source url');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/LessphpFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/LessphpFilterTest.php
deleted file mode 100644
index 9e983e9e8762..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/LessphpFilterTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\LessphpFilter;
-
-/**
- * @group integration
- */
-class LessphpFilterTest extends LessFilterTest
-{
-    protected function setUp()
-    {
-        $this->filter = new LessphpFilter();
-    }
-
-    public function testPresets()
-    {
-        $expected = <<<EOF
-.foo {
-  color: green;
-}
-
-EOF;
-
-        $asset = new StringAsset('.foo { color: @bar }');
-        $asset->load();
-
-        $this->filter->setPresets(array(
-            'bar' => 'green'
-        ));
-
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals($expected, $asset->getContent(), '->setPresets() to pass variables into lessphp filter');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/OptiPngFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/OptiPngFilterTest.php
deleted file mode 100644
index c2f72c7d6ca0..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/OptiPngFilterTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\OptiPngFilter;
-
-/**
- * @group integration
- */
-class OptiPngFilterTest extends BaseImageFilterTest
-{
-    private $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['OPTIPNG_BIN'])) {
-            $this->markTestSkipped('No OptiPNG configuration.');
-        }
-
-        $this->filter = new OptiPngFilter($_SERVER['OPTIPNG_BIN']);
-    }
-
-    /**
-     * @dataProvider getImages
-     */
-    public function testFilter($image)
-    {
-        $asset = new FileAsset($image);
-        $asset->load();
-
-        $before = $asset->getContent();
-        $this->filter->filterDump($asset);
-
-        $this->assertNotEmpty($asset->getContent(), '->filterDump() sets content');
-        $this->assertNotEquals($before, $asset->getContent(), '->filterDump() changes the content');
-        $this->assertMimeType('image/png', $asset->getContent(), '->filterDump() creates PNG data');
-    }
-
-    public function getImages()
-    {
-        return array(
-            array(__DIR__.'/fixtures/home.gif'),
-            array(__DIR__.'/fixtures/home.png'),
-        );
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PackagerFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PackagerFilterTest.php
deleted file mode 100644
index 7dcdaa07d0b7..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PackagerFilterTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\PackagerFilter;
-
-/**
- * @group integration
- */
-class PackagerFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('Packager', false)) {
-            $this->markTestSkipped('Packager is not available.');
-        }
-    }
-
-    public function testPackager()
-    {
-        $expected = <<<EOF
-/*
----
-
-name: Util
-
-provides: [Util]
-
-...
-*/
-
-function foo() {}
-
-
-/*
----
-
-name: App
-
-requires: [Util/Util]
-
-...
-*/
-
-var bar = foo();
-
-
-EOF;
-
-        $asset = new FileAsset(__DIR__.'/fixtures/packager/app/application.js', array(), __DIR__.'/fixtures/packager/app', 'application.js');
-        $asset->load();
-
-        $filter = new PackagerFilter();
-        $filter->addPackage(__DIR__.'/fixtures/packager/lib');
-        $filter->filterLoad($asset);
-
-        $this->assertEquals($expected, $asset->getContent(), '->filterLoad() runs packager');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PackerFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PackerFilterTest.php
deleted file mode 100644
index 8bad914b481d..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PackerFilterTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2011 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\PackerFilter;
-
-class PackerFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('JavaScriptPacker')) {
-            $this->markTestSkipped('JavaScriptPacker is not installed.');
-        }
-    }
-
-    public function testPacker()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/packer/example.js');
-        $asset->load();
-
-        $filter = new PackerFilter();
-        $filter->filterDump($asset);
-
-        $this->assertEquals("var exampleFunction=function(arg1,arg2){alert('exampleFunction called!')}", $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PhpCssEmbedFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PhpCssEmbedFilterTest.php
deleted file mode 100644
index 27e2ec9afa56..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PhpCssEmbedFilterTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\PhpCssEmbedFilter;
-
-/**
- * @group integration
- */
-class PhpCssEmbedFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCssEmbedDataUri()
-    {
-        $data = base64_encode(file_get_contents(__DIR__.'/fixtures/home.png'));
-
-        $asset = new FileAsset(__DIR__ . '/fixtures/cssembed/test.css');
-        $asset->load();
-
-        $filter = new PhpCssEmbedFilter();
-        $filter->filterLoad($asset);
-
-        $this->assertContains('url(data:image/png;base64,'.$data, $asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PngoutFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PngoutFilterTest.php
deleted file mode 100644
index 23c07129c0a9..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/PngoutFilterTest.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\PngoutFilter;
-
-/**
- * @group integration
- */
-class PngoutFilterTest extends BaseImageFilterTest
-{
-    private $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['PNGOUT_BIN'])) {
-            $this->markTestSkipped('No pngout configuration.');
-        }
-
-        $this->filter = new PngoutFilter($_SERVER['PNGOUT_BIN']);
-    }
-
-    /**
-     * @dataProvider getImages
-     */
-    public function testFilter($image)
-    {
-        $asset = new FileAsset($image);
-        $asset->load();
-
-        $before = $asset->getContent();
-        $this->filter->filterDump($asset);
-
-        $this->assertNotEmpty($asset->getContent(), '->filterLoad() sets content');
-        $this->assertNotEquals($before, $asset->getContent(), '->filterLoad() changes the content');
-        $this->assertMimeType('image/png', $asset->getContent(), '->filterLoad() creates PNG data');
-    }
-
-    public function getImages()
-    {
-        return array(
-            array(__DIR__.'/fixtures/home.gif'),
-            array(__DIR__.'/fixtures/home.jpg'),
-            array(__DIR__.'/fixtures/home.png'),
-        );
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Sass/SassFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Sass/SassFilterTest.php
deleted file mode 100644
index 874e5911ca94..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Sass/SassFilterTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter\Sass;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\Sass\SassFilter;
-
-/**
- * @group integration
- */
-class SassFilterTest extends \PHPUnit_Framework_TestCase
-{
-    private $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['SASS_BIN'])) {
-            $this->markTestSkipped('There is no SASS_BIN environment variable.');
-        }
-
-        $this->filter = new SassFilter($_SERVER['SASS_BIN']);
-    }
-
-    public function testSass()
-    {
-        $input = <<<EOF
-body
-  color: #F00
-EOF;
-
-        $asset = new StringAsset($input);
-        $asset->load();
-
-        $this->filter->setStyle(SassFilter::STYLE_COMPACT);
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals("body { color: red; }\n", $asset->getContent(), '->filterLoad() parses the sass');
-    }
-
-    public function testScssGuess()
-    {
-        $input = <<<'EOF'
-$red: #F00;
-
-.foo {
-    color: $red;
-}
-
-EOF;
-
-        $expected = '.foo { color: red; }';
-
-        $asset = new StringAsset($input, array(), null, 'foo.scss');
-        $asset->load();
-
-        $this->filter->setStyle(SassFilter::STYLE_COMPACT);
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals(".foo { color: red; }\n", $asset->getContent(), '->filterLoad() detects SCSS based on source path extension');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Sass/ScssFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Sass/ScssFilterTest.php
deleted file mode 100644
index a08fe0e6bada..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Sass/ScssFilterTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter\Sass;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\Sass\ScssFilter;
-
-/**
- * @group integration
- */
-class ScssFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testImport()
-    {
-        if (!isset($_SERVER['SASS_BIN'])) {
-            $this->markTestSkipped('There is no SASS_BIN environment variable.');
-        }
-
-        $asset = new FileAsset(__DIR__.'/../fixtures/sass/main.scss');
-        $asset->load();
-
-        $filter = new ScssFilter($_SERVER['SASS_BIN']);
-        $filter->setStyle(ScssFilter::STYLE_COMPACT);
-        $filter->filterLoad($asset);
-
-        $expected = <<<EOF
-.foo { color: blue; }
-
-.foo { color: red; }
-
-EOF;
-
-        $this->assertEquals($expected, $asset->getContent(), '->filterLoad() loads imports');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/ScssphpFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/ScssphpFilterTest.php
deleted file mode 100644
index a46bac757768..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/ScssphpFilterTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\ScssphpFilter;
-
-/**
- * @group integration
- */
-class ScssphpFilterTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        $this->filter = new ScssphpFilter();
-    }
-
-    public function testFilterLoad()
-    {
-        $expected = <<<EOF
-.foo .bar {
-  width: 2; }
-
-EOF;
-
-        $asset = new StringAsset('.foo{.bar{width:1+ 1;}}');
-        $asset->load();
-
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals($expected, $asset->getContent(), '->filterLoad() parses the content');
-    }
-
-    public function testImport()
-    {
-        $expected = <<<EOF
-.foo {
-  color: blue; }
-
-.foo {
-  color: red; }
-
-EOF;
-
-        $asset = new FileAsset(__DIR__.'/fixtures/sass/main.scss');
-        $asset->load();
-
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals($expected, $asset->getContent(), '->filterLoad() sets an include path based on source url');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/SprocketsFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/SprocketsFilterTest.php
deleted file mode 100644
index 8694dc5e568f..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/SprocketsFilterTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\SprocketsFilter;
-
-/**
- * @group integration
- */
-class SprocketsFilterTest extends \PHPUnit_Framework_TestCase
-{
-    private $assetRoot;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['SPROCKETS_LIB']) || !isset($_SERVER['RUBY_BIN'])) {
-            $this->markTestSkipped('There is no sprockets configuration.');
-        }
-
-        $this->assetRoot = sys_get_temp_dir().'/assetic_sprockets';
-        if (is_dir($this->assetRoot)) {
-            $this->cleanup();
-        } else {
-            mkdir($this->assetRoot);
-        }
-    }
-
-    protected function tearDown()
-    {
-        $this->cleanup();
-    }
-
-    private function cleanup()
-    {
-        $it = new \RecursiveDirectoryIterator($this->assetRoot);
-        foreach (new \RecursiveIteratorIterator($it) as $path => $file) {
-            if (is_file($path)) {
-                unlink($path);
-            }
-        }
-    }
-
-    public function testFilterLoad()
-    {
-        $asset = new FileAsset(__DIR__.'/fixtures/sprockets/main.js');
-        $asset->load();
-
-        $filter = new SprocketsFilter($_SERVER['SPROCKETS_LIB'], $_SERVER['RUBY_BIN']);
-        $filter->addIncludeDir(__DIR__.'/fixtures/sprockets/lib1');
-        $filter->addIncludeDir(__DIR__.'/fixtures/sprockets/lib2');
-        $filter->setAssetRoot($this->assetRoot);
-        $filter->filterLoad($asset);
-
-        $this->assertContains('/* header.js */', $asset->getContent());
-        $this->assertContains('/* include.js */', $asset->getContent());
-        $this->assertContains('/* footer.js */', $asset->getContent());
-        $this->assertFileExists($this->assetRoot.'/images/image.gif');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/StylusFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/StylusFilterTest.php
deleted file mode 100644
index 03fc7294496b..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/StylusFilterTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\StylusFilter;
-
-/**
- * @group integration
- */
-class StylusFilterTest extends \PHPUnit_Framework_TestCase
-{
-    private $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['NODE_BIN']) || !isset($_SERVER['NODE_PATH'])) {
-            $this->markTestSkipped('No node.js configuration.');
-        }
-
-        $this->filter = new StylusFilter($_SERVER['NODE_BIN'], array($_SERVER['NODE_PATH']));
-    }
-
-    public function testFilterLoad()
-    {
-        $asset = new StringAsset("body\n  font 12px Helvetica, Arial, sans-serif\n  color black");
-        $asset->load();
-
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals("body {\n  font: 12px Helvetica, Arial, sans-serif;\n  color: #000;\n}\n", $asset->getContent(), '->filterLoad() parses the content');
-    }
-
-    public function testFilterLoadWithCompression()
-    {
-        $asset = new StringAsset("body\n  font 12px Helvetica, Arial, sans-serif\n  color black;");
-        $asset->load();
-
-        $this->filter->setCompress(true);
-        $this->filter->filterLoad($asset);
-
-        $this->assertEquals("body{font:12px Helvetica,Arial,sans-serif;color:#000}\n", $asset->getContent(), '->filterLoad() parses the content and compress it');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/UglifyJsFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/UglifyJsFilterTest.php
deleted file mode 100644
index bc4b24296b9c..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/UglifyJsFilterTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter;
-
-use Assetic\Asset\FileAsset;
-use Assetic\Filter\UglifyJsFilter;
-
-/**
- * @group integration
- */
-class UglifyJsFilterTest extends \PHPUnit_Framework_TestCase
-{
-    private $asset;
-    private $filter;
-
-    protected function setUp()
-    {
-        if (!isset($_SERVER['UGLIFYJS_BIN'])) {
-            $this->markTestSkipped('There is no uglifyJs configuration.');
-        }
-
-        $this->asset = new FileAsset(__DIR__.'/fixtures/uglifyjs/script.js');
-        $this->asset->load();
-
-        if (isset($_SERVER['NODE_BIN'])) {
-            $this->filter = new UglifyJsFilter($_SERVER['UGLIFYJS_BIN'], $_SERVER['NODE_BIN']);
-        } else {
-            $this->filter = new UglifyJsFilter($_SERVER['UGLIFYJS_BIN']);
-        }
-    }
-
-    protected function tearDown()
-    {
-        $this->asset = null;
-        $this->filter = null;
-    }
-
-    public function testUglify()
-    {
-        $this->filter->filterDump($this->asset);
-
-        $expected = <<<JS
-/**
- * Copyright
- */function bar(a){return var2.push(a),a}var foo=new Array(1,2,3,4),bar=Array(a,b,c),var1=new Array(5),var2=new Array(a),foo=function(a){return a};
-JS;
-        $this->assertSame($expected, $this->asset->getContent());
-    }
-
-    public function testUnsafeUglify()
-    {
-        $this->filter->setUnsafe(true);
-        $this->filter->filterDump($this->asset);
-
-        $expected = <<<JS
-/**
- * Copyright
- */function bar(a){return var2.push(a),a}var foo=[1,2,3,4],bar=[a,b,c],var1=Array(5),var2=Array(a),foo=function(a){return a};
-JS;
-        $this->assertSame($expected, $this->asset->getContent());
-    }
-
-    public function testBeautifyUglify()
-    {
-        $this->filter->setBeautify(true);
-        $this->filter->filterDump($this->asset);
-
-        $expected = <<<JS
-/**
- * Copyright
- */function bar(a) {
-    return var2.push(a), a;
-}
-
-var foo = new Array(1, 2, 3, 4), bar = Array(a, b, c), var1 = new Array(5), var2 = new Array(a), foo = function(a) {
-    return a;
-};
-JS;
-
-        $this->assertSame($expected, $this->asset->getContent());
-    }
-
-    public function testNoCopyrightUglify()
-    {
-        $this->filter->setNoCopyright(true);
-        $this->filter->filterDump($this->asset);
-
-        $expected = 'function bar(a){return var2.push(a),a}var foo=new Array(1,2,3,4),bar=Array(a,b,c),var1=new Array(5),var2=new Array(a),foo=function(a){return a};';
-        $this->assertSame($expected, $this->asset->getContent());
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/BaseCompressorFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/BaseCompressorFilterTest.php
deleted file mode 100644
index 39491b10b470..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/BaseCompressorFilterTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter\Yui;
-
-use Assetic\Asset\AssetInterface;
-use Assetic\Filter\Yui\BaseCompressorFilter;
-
-class BaseCompressorFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $filter = new YuiCompressorFilterForTest('/path/to/jar');
-        $this->assertInstanceOf('Assetic\\Filter\\FilterInterface', $filter, 'BaseCompressorFilter implements FilterInterface');
-    }
-}
-
-class YuiCompressorFilterForTest extends BaseCompressorFilter
-{
-    public function filterDump(AssetInterface $asset)
-    {
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/CssCompressorFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/CssCompressorFilterTest.php
deleted file mode 100644
index 61f9fd84802e..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/CssCompressorFilterTest.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter\Yui;
-
-use Assetic\Filter\Yui\CssCompressorFilter;
-
-class CssCompressorFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $filter = new CssCompressorFilter('/path/to/jar');
-        $this->assertInstanceOf('Assetic\\Filter\\FilterInterface', $filter, 'CssCompressorFilter implements FilterInterface');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/JsCompressorFilterTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/JsCompressorFilterTest.php
deleted file mode 100644
index c3918371e8ee..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/Yui/JsCompressorFilterTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Filter\Yui;
-
-use Assetic\Asset\StringAsset;
-use Assetic\Filter\Yui\JsCompressorFilter;
-
-class JsCompressorFilterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $filter = new JsCompressorFilter('/path/to/jar');
-        $this->assertInstanceOf('Assetic\\Filter\\FilterInterface', $filter, 'JsCompressorFilter implements FilterInterface');
-    }
-
-    /**
-     * @group integration
-     */
-    public function testFilterDump()
-    {
-        if (!isset($_SERVER['YUI_COMPRESSOR_JAR'])) {
-            $this->markTestSkipped('There is no YUI_COMPRESSOR_JAR environment variable.');
-        }
-
-        $source = <<<JAVASCRIPT
-(function() {
-
-var asdf = 'asdf';
-var qwer = 'qwer';
-
-if (asdf.indexOf(qwer)) {
-    alert("That's not possible!");
-} else {
-    alert("Boom.");
-}
-
-})();
-
-JAVASCRIPT;
-
-        $expected = <<<JAVASCRIPT
-(function(){var a="asdf";var b="qwer";if(a.indexOf(b)){alert("That's not possible!")}else{alert("Boom.")}})();
-JAVASCRIPT;
-
-        $asset = new StringAsset($source);
-        $asset->load();
-
-        $filter = new JsCompressorFilter($_SERVER['YUI_COMPRESSOR_JAR']);
-        $filter->filterDump($asset);
-
-        $this->assertEquals($expected, $asset->getContent(), '->filterDump()');
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/compass.sass b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/compass.sass
deleted file mode 100644
index dfc99fbdcdc2..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/compass.sass
+++ /dev/null
@@ -1,4 +0,0 @@
-@import "compass/typography/links/hover-link"
-
-a
-  @include hover-link
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/partials/_sass.sass b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/partials/_sass.sass
deleted file mode 100644
index 8593aabdcc04..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/partials/_sass.sass
+++ /dev/null
@@ -1,4 +0,0 @@
-@import "compass/utilities"
-
-@mixin mixin-test($fontSize: 1em)
-    font-size: $fontSize
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/partials/_scss.scss b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/partials/_scss.scss
deleted file mode 100644
index 896ba5b69106..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/partials/_scss.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "compass/utilities";
-
-@mixin mixin-test($fontSize: 1em)
-{
-    font-size: $fontSize;
-}
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/stylesheet.sass b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/stylesheet.sass
deleted file mode 100644
index 569d84eb2d2e..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/stylesheet.sass
+++ /dev/null
@@ -1,4 +0,0 @@
-@import "partials/sass"
-
-.test-class
-    @include mixin-test(2em)
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/stylesheet.scss b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/stylesheet.scss
deleted file mode 100644
index 461884c96513..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/compass/stylesheet.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "partials/scss";
-
-.test-class
-{
-    @include mixin-test(2em);
-}
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssembed/test.css b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssembed/test.css
deleted file mode 100644
index 370982ceaad9..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssembed/test.css
+++ /dev/null
@@ -1,4 +0,0 @@
-.test
-{
-    background: url(../home.png);
-}
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/import.css b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/import.css
deleted file mode 100644
index e2c77fee3597..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/import.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/* import.css */
-body { color: red; }
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/main.css b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/main.css
deleted file mode 100644
index 1a90d49ab287..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/main.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/* main.css */
-@import "import.css";
-@import url('more/evenmore/deep1.css');
-body { color: black; }
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more.sass b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more.sass
deleted file mode 100644
index 1463b1683f23..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more.sass
+++ /dev/null
@@ -1 +0,0 @@
-/* more.sass */
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/bg.gif b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/bg.gif
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/deep1.css b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/deep1.css
deleted file mode 100644
index 433b34153d19..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/deep1.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/* more/evenmore/deep1.css */
-@import url(deep2.css);
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/deep2.css b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/deep2.css
deleted file mode 100644
index 645a40eb0f08..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/more/evenmore/deep2.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/* more/evenmore/deep2.css */
-body {
-    background: url(bg.gif);
-}
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/noncssimport.css b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/noncssimport.css
deleted file mode 100644
index 2cea30f013f7..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssimport/noncssimport.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/* noncssimport.css */
-@import "more.sass";
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssmin/fonts.css b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssmin/fonts.css
deleted file mode 100644
index 2d135f60087f..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssmin/fonts.css
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
-    color: white;
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssmin/main.css b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssmin/main.css
deleted file mode 100644
index 8fbabc82dd31..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/cssmin/main.css
+++ /dev/null
@@ -1,5 +0,0 @@
-@import url("fonts.css");
-
-body {
-    background: black;
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.gif b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.gif
deleted file mode 100644
index edda5603d352..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.gif
+++ /dev/null
@@ -1,5 +0,0 @@
-GIF89a
-�
-�€�fff���!ù���,����
-�
-��Œp›¹Øœ‰Òfé¼*W»uX��;
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.jpg b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.jpg
deleted file mode 100644
index e0ad369cfbc6..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.jpg
+++ /dev/null
@@ -1,3 +0,0 @@
-ÿØÿà�JFIF���d�d��ÿì�Ducky�����d��ÿî�Adobe�dÀ���ÿÛ�„�ÿÀ��
-�
-�ÿÄ�c����������������	���������������������������•6¦7W§·8x	9Ú����������������ÿÚ���?�*²jþ¿ÚürÜ1å…’£ê ,uà	1	ɍA˜0f¸™@“†[<q”ytN{‰Ü¸^DE)FŽ~EÄ‹Ò%•`I)J‡ÙírîB”>Pû
ÚS¿ž´‡ºù`”,×\¾|{Pò™Íù]¯ü¡Ø?ÿÙ
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.png b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.png
deleted file mode 100644
index bf12e0b9f9b9..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/home.png
+++ /dev/null
@@ -1,6 +0,0 @@
-‰PNG
-
-���
IHDR���
-���
-���2Ͻ���gAMA��¯È7Šé���tEXtSoftware�Adobe ImageReadyqÉe<���JIDATxÚbüÿÿ?2`öÝ»DÿÝìŠ,΄M:E!ºº.E芙|öàT„b5º£±&"ù
-AÖ`sÑ&�B×5ÄŠç%����IEND®B`‚
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/jsmin/js.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/jsmin/js.js
deleted file mode 100644
index 76b743159c20..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/jsmin/js.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var a = "abc";
-
-// fsfafwe
-
-;;
-	var bbb = "u";
-	
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/less/_include.less b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/less/_include.less
deleted file mode 100644
index 8e508d85b88c..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/less/_include.less
+++ /dev/null
@@ -1 +0,0 @@
-.foo { color: blue; }
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/less/main.less b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/less/main.less
deleted file mode 100644
index 86caa7b19969..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/less/main.less
+++ /dev/null
@@ -1,3 +0,0 @@
-@import "_include";
-
-.foo { color: red; }
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/app/application.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/app/application.js
deleted file mode 100644
index c0a775c36240..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/app/application.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
----
-
-name: App
-
-requires: [Util/Util]
-
-...
-*/
-
-var bar = foo();
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/lib/package.yml b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/lib/package.yml
deleted file mode 100644
index 331b341f9e92..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/lib/package.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-name: "Util"
-
-sources:
-  - "util.js"
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/lib/util.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/lib/util.js
deleted file mode 100644
index bb94a5a494ac..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packager/lib/util.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
----
-
-name: Util
-
-provides: [Util]
-
-...
-*/
-
-function foo() {}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packer/example.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packer/example.js
deleted file mode 100644
index d80ab5ad5f6a..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/packer/example.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * Example function
- */
-var exampleFunction = function(arg1, arg2) {
-    // Some comment...
-    alert('exampleFunction called!');
-}
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sass/_include.scss b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sass/_include.scss
deleted file mode 100644
index 8e508d85b88c..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sass/_include.scss
+++ /dev/null
@@ -1 +0,0 @@
-.foo { color: blue; }
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sass/main.scss b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sass/main.scss
deleted file mode 100644
index 86caa7b19969..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sass/main.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-@import "_include";
-
-.foo { color: red; }
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/include.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/include.js
deleted file mode 100644
index a17b90b2083c..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/include.js
+++ /dev/null
@@ -1 +0,0 @@
-/* include.js */
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib1/assets/images/image.gif b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib1/assets/images/image.gif
deleted file mode 100644
index f32722af9d01..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib1/assets/images/image.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF89a��‘��ÿÿÿÿÿÿþ���!ù�ÿ�,�������D�;
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib1/header.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib1/header.js
deleted file mode 100644
index c60f8d540a3e..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib1/header.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* header.js */
-
-//= provide "assets"
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib2/footer.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib2/footer.js
deleted file mode 100644
index 5ce2b9c48a46..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/lib2/footer.js
+++ /dev/null
@@ -1 +0,0 @@
-/* footer.js */
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/main.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/main.js
deleted file mode 100644
index 6ea483ac4f80..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/sprockets/main.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//= require <header>
-
-//= require "include"
-
-//= require <footer>
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/uglifyjs/script.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/uglifyjs/script.js
deleted file mode 100644
index a7c223337242..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Filter/fixtures/uglifyjs/script.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Copyright
- */
-
-var foo = new Array(1, 2, 3, 4);
-var bar = Array(a, b, c);
-var var1 = new Array(5);
-var var2 = new Array(a);
-
-function bar(foo) {
-    var2.push(foo);
-    return foo;
-}
-
-// comment
-var foo = function (var1) {
-    return var1;
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/FilterManagerTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/FilterManagerTest.php
deleted file mode 100644
index 6d54a717d13a..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/FilterManagerTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test;
-
-use Assetic\FilterManager;
-
-class FilterManagerTest extends \PHPUnit_Framework_TestCase
-{
-    private $fm;
-
-    protected function setUp()
-    {
-        $this->fm = new FilterManager();
-    }
-
-    public function testInvalidName()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-
-        $this->fm->get('foo');
-    }
-
-    public function testGetFilter()
-    {
-        $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
-        $name = 'foo';
-
-        $this->fm->set($name, $filter);
-
-        $this->assertSame($filter, $this->fm->get($name), '->set() sets a filter');
-    }
-
-    public function testHas()
-    {
-        $this->fm->set('foo', $this->getMock('Assetic\\Filter\\FilterInterface'));
-        $this->assertTrue($this->fm->has('foo'), '->has() returns true if the filter is set');
-    }
-
-    public function testHasInvalid()
-    {
-        $this->assertFalse($this->fm->has('foo'), '->has() returns false if the filter is not set');
-    }
-
-    public function testInvalidAlias()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->fm->set('@foo', $this->getMock('Assetic\\Filter\\FilterInterface'));
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.de.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.de.js
deleted file mode 100644
index d2c778089974..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.de.js
+++ /dev/null
@@ -1 +0,0 @@
-var messages = {"text.greeting": "Hallo %name%!"};
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.en.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.en.js
deleted file mode 100644
index 3eb9da299d51..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.en.js
+++ /dev/null
@@ -1 +0,0 @@
-var messages = {"text.greeting": "Hello %name%!"};
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.fr.js b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.fr.js
deleted file mode 100644
index 8fd4c4dc23a3..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Fixture/messages.fr.js
+++ /dev/null
@@ -1 +0,0 @@
-var messages = {"text.greet": "All\u00f4 %name%!"};
\ No newline at end of file
diff --git a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Util/TraversableStringTest.php b/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Util/TraversableStringTest.php
deleted file mode 100644
index 47bd05a8a625..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/Assetic/Test/Util/TraversableStringTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Assetic\Test\Util;
-
-use Assetic\Util\TraversableString;
-
-class TraversableStringTest extends \PHPUnit_Framework_TestCase
-{
-    public function testString()
-    {
-        $foo = new TraversableString('foo', array('foo', 'bar'));
-        $this->assertEquals('foo', (string) $foo);
-    }
-
-    public function testArray()
-    {
-        $foo = new TraversableString('foo', array('foo', 'bar'));
-
-        $values = array();
-        foreach ($foo as $value) {
-            $values[] = $value;
-        }
-
-        $this->assertEquals(array('foo', 'bar'), $values);
-    }
-}
diff --git a/core/vendor/kriswallsmith/assetic/tests/bootstrap.php b/core/vendor/kriswallsmith/assetic/tests/bootstrap.php
deleted file mode 100644
index f36666932187..000000000000
--- a/core/vendor/kriswallsmith/assetic/tests/bootstrap.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 OpenSky Project Inc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!$loader = @include __DIR__.'/../vendor/autoload.php') {
-    die('You must set up the project dependencies, run the following commands:'.PHP_EOL.
-        'curl -s http://getcomposer.org/installer | php'.PHP_EOL.
-        'php composer.phar install'.PHP_EOL);
-}
-
-$loader->add('Assetic\Test', __DIR__);
-
-if (isset($_SERVER['TWIG_LIB'])) {
-    $loader->add('Twig_', $_SERVER['TWIG_LIB']);
-}
-
-if (isset($_SERVER['LESSPHP'])) {
-    require_once $_SERVER['LESSPHP'];
-}
-
-if (isset($_SERVER['CSSMIN'])) {
-    require_once $_SERVER['CSSMIN'];
-}
-
-if (isset($_SERVER['JSMIN'])) {
-    require_once $_SERVER['JSMIN'];
-}
-
-if (isset($_SERVER['JSMINPLUS'])) {
-    require_once $_SERVER['JSMINPLUS'];
-}
-
-if (isset($_SERVER['PACKAGER'])) {
-    require_once $_SERVER['PACKAGER'];
-}
-
-if (isset($_SERVER['PACKER'])) {
-    require_once $_SERVER['PACKER'];
-}
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator.php b/core/vendor/phpunit/php-file-iterator/File/Iterator.php
index f898ef51a55b..73f19b974ec6 100644
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator.php
+++ b/core/vendor/phpunit/php-file-iterator/File/Iterator.php
@@ -2,7 +2,7 @@
 /**
  * php-file-iterator
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   File
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since     File available since Release 1.0.0
  */
@@ -45,8 +45,8 @@
  * FilterIterator implementation that filters files based on prefix(es) and/or
  * suffix(es). Hidden files and files from hidden directories are also filtered.
  *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php b/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php
index 5a8c01aa68c3..fcb21059982b 100644
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php
+++ b/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php
@@ -2,7 +2,7 @@
 /**
  * php-file-iterator
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   File
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since     File available since Release 1.3.0
  */
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in b/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in
index 56da6c145a93..20d58b946125 100644
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in
+++ b/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in
@@ -2,7 +2,7 @@
 /**
  * php-file-iterator
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sb@sebastian-bergmann.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,7 +36,7 @@
  *
  * @package   File
  * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
- * @copyright 2009-2013 Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since     File available since Release 1.3.0
  */
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator/Facade.php b/core/vendor/phpunit/php-file-iterator/File/Iterator/Facade.php
index 2b846d09df50..d30283e94b50 100644
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator/Facade.php
+++ b/core/vendor/phpunit/php-file-iterator/File/Iterator/Facade.php
@@ -2,7 +2,7 @@
 /**
  * php-file-iterator
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   File
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since     File available since Release 1.3.0
  */
@@ -47,8 +47,8 @@
  * RecursiveDirectoryIterator for each given path. The list of unique
  * files is returned as an array.
  *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php b/core/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php
index 28b141099ccb..47a50ae7b3e5 100644
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php
+++ b/core/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php
@@ -2,7 +2,7 @@
 /**
  * php-file-iterator
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   File
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since     File available since Release 1.1.0
  */
@@ -46,8 +46,8 @@
  * an AppendIterator that contains an RecursiveDirectoryIterator for each given
  * path.
  *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
diff --git a/core/vendor/phpunit/php-file-iterator/LICENSE b/core/vendor/phpunit/php-file-iterator/LICENSE
index c392d412c4eb..58c57434ee02 100644
--- a/core/vendor/phpunit/php-file-iterator/LICENSE
+++ b/core/vendor/phpunit/php-file-iterator/LICENSE
@@ -1,6 +1,6 @@
 File_Iterator
 
-Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2009-2012, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/phpunit/php-file-iterator/composer.json b/core/vendor/phpunit/php-file-iterator/composer.json
index 1ddd5b88bb67..aab32bce25ba 100644
--- a/core/vendor/phpunit/php-file-iterator/composer.json
+++ b/core/vendor/phpunit/php-file-iterator/composer.json
@@ -6,7 +6,7 @@
         "iterator",
         "filesystem"
     ],
-    "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+    "homepage": "http://www.phpunit.de/",
     "license": "BSD-3-Clause",
     "authors": [
         {
diff --git a/core/vendor/phpunit/php-file-iterator/package-composer.json b/core/vendor/phpunit/php-file-iterator/package-composer.json
new file mode 100644
index 000000000000..c71bad7bf5f1
--- /dev/null
+++ b/core/vendor/phpunit/php-file-iterator/package-composer.json
@@ -0,0 +1,19 @@
+{
+    "name": "phpunit/php-file-iterator",
+    "keywords": [ "iterator", "filesystem" ],
+    "license": "BSD-3-Clause",
+    "homepage": "http://www.phpunit.de/",
+    "dependency_map": {},
+    "support": {
+        "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+        "irc": "irc://irc.freenode.net/phpunit"
+    },
+    "autoload": {
+        "classmap": [ "File/" ]
+    },
+    "include_path": [
+        ""
+    ],
+    "version": false,
+    "time": false
+}
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-text-template/LICENSE b/core/vendor/phpunit/php-text-template/LICENSE
index 7cc89412c53b..af2a7132bc4a 100644
--- a/core/vendor/phpunit/php-text-template/LICENSE
+++ b/core/vendor/phpunit/php-text-template/LICENSE
@@ -1,6 +1,6 @@
 Text_Template
 
-Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/phpunit/php-text-template/Text/Template.php b/core/vendor/phpunit/php-text-template/Text/Template.php
index 472570a249e2..24abf1bf0f06 100644
--- a/core/vendor/phpunit/php-text-template/Text/Template.php
+++ b/core/vendor/phpunit/php-text-template/Text/Template.php
@@ -2,7 +2,7 @@
 /**
  * Text_Template
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @category   Text
  * @package    Template
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-text-template
  * @since      File available since Release 1.0.0
@@ -48,8 +48,8 @@
  *
  * @category   Text
  * @package    Template
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-text-template
diff --git a/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php b/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php
index 67005b524a79..90ee111fd090 100644
--- a/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php
+++ b/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php
@@ -2,7 +2,7 @@
 /**
  * Text_Template
  *
- * Copyright (c) 2009-2010, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2010, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @category   Text
  * @package    Template
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2010 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-text-template
  * @since      File available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php.in b/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php.in
index 0294eabdc1dd..183740323183 100644
--- a/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php.in
+++ b/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php.in
@@ -2,7 +2,7 @@
 /**
  * Text_Template
  *
- * Copyright (c) 2009-2010, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2010, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @category   Text
  * @package    Template
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2010 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-text-template
  * @since      File available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-timer/LICENSE b/core/vendor/phpunit/php-timer/LICENSE
index 581812af3737..b51fc64c47e5 100644
--- a/core/vendor/phpunit/php-timer/LICENSE
+++ b/core/vendor/phpunit/php-timer/LICENSE
@@ -1,6 +1,6 @@
 PHP_Timer
 
-Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2010-2012, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/phpunit/php-timer/PHP/Timer.php b/core/vendor/phpunit/php-timer/PHP/Timer.php
index 5be7f15901e9..0f2cc2b5cbbd 100644
--- a/core/vendor/phpunit/php-timer/PHP/Timer.php
+++ b/core/vendor/phpunit/php-timer/PHP/Timer.php
@@ -2,7 +2,7 @@
 /**
  * PHP_Timer
  *
- * Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2010-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @package    PHP
  * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2010-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-timer
  * @since      File available since Release 1.0.0
@@ -48,8 +48,8 @@
  *
  * @package    PHP
  * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2010-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-timer
@@ -128,7 +128,7 @@ public static function secondsToTimeString($time)
      */
     public static function timeSinceStartOfRequest()
     {
-        return self::secondsToTimeString(microtime(TRUE) - self::$requestTime);
+        return self::secondsToTimeString(time() - self::$requestTime);
     }
 
     /**
@@ -155,5 +155,5 @@ public static function resourceUsage()
 }
 
 else {
-    PHP_Timer::$requestTime = microtime(TRUE);
-}
+    PHP_Timer::$requestTime = time();
+}
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php b/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php
index 17b781daae8e..0184b9dbb20e 100644
--- a/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php
+++ b/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php
@@ -2,7 +2,7 @@
 /**
  * PHP_Timer
  *
- * Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2010-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @package    PHP
  * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2010-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-timer
  * @since      File available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php.in b/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php.in
index c2681c27a33f..77e7b039a38e 100644
--- a/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php.in
+++ b/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php.in
@@ -2,7 +2,7 @@
 /**
  * PHP_Timer
  *
- * Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2010-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @package    PHP
  * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2010-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-timer
  * @since      File available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-timer/Tests/TimerTest.php b/core/vendor/phpunit/php-timer/Tests/TimerTest.php
index 4dab17693676..1582d3b043ba 100644
--- a/core/vendor/phpunit/php-timer/Tests/TimerTest.php
+++ b/core/vendor/phpunit/php-timer/Tests/TimerTest.php
@@ -2,7 +2,7 @@
 /**
  * PHP_Timer
  *
- * Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2010, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @package    PHP
  * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-timer
  * @since      File available since Release 1.0.0
@@ -50,8 +50,8 @@
  *
  * @package    PHP
  * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2010-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-timer
diff --git a/core/vendor/phpunit/php-timer/composer.json b/core/vendor/phpunit/php-timer/composer.json
index 211c001786b9..b10a398ec139 100644
--- a/core/vendor/phpunit/php-timer/composer.json
+++ b/core/vendor/phpunit/php-timer/composer.json
@@ -5,7 +5,7 @@
     "keywords": [
         "timer"
     ],
-    "homepage": "https://github.com/sebastianbergmann/php-timer/",
+    "homepage": "http://www.phpunit.de/",
     "license": "BSD-3-Clause",
     "authors": [
         {
diff --git a/core/vendor/phpunit/php-timer/package-composer.json b/core/vendor/phpunit/php-timer/package-composer.json
new file mode 100644
index 000000000000..7bdde76c9d3c
--- /dev/null
+++ b/core/vendor/phpunit/php-timer/package-composer.json
@@ -0,0 +1,19 @@
+{
+    "name": "phpunit/php-timer",
+    "keywords": [ "timer" ],
+    "license": "BSD-3-Clause",
+    "homepage": "http://www.phpunit.de/",
+    "dependency_map": { },
+    "support": {
+        "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+        "irc": "irc://irc.freenode.net/phpunit"
+    },
+    "autoload": {
+        "classmap": [ "PHP/" ]
+    },
+    "include_path": [
+        ""
+    ],
+    "version": false,
+    "time": false
+}
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-token-stream/LICENSE b/core/vendor/phpunit/php-token-stream/LICENSE
index e5ae55e82a2b..471af20dd423 100644
--- a/core/vendor/phpunit/php-token-stream/LICENSE
+++ b/core/vendor/phpunit/php-token-stream/LICENSE
@@ -1,6 +1,6 @@
 PHP_TokenStream
 
-Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2009-2012, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/phpunit/php-token-stream/PHP/Token.php b/core/vendor/phpunit/php-token-stream/PHP/Token.php
index 450aefab4cb8..ebd4ce76b04e 100644
--- a/core/vendor/phpunit/php-token-stream/PHP/Token.php
+++ b/core/vendor/phpunit/php-token-stream/PHP/Token.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   PHP_TokenStream
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since     File available since Release 1.0.0
  */
@@ -44,8 +44,8 @@
 /**
  * A PHP token.
  *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-token-stream/tree
@@ -175,7 +175,7 @@ public function getEndTokenId()
                 }
             }
 
-            else if (($this instanceof PHP_Token_FUNCTION ||
+            else if (($this instanceof PHP_Token_FUNCTION || 
                 $this instanceof PHP_Token_NAMESPACE) &&
                 $tokens[$i] instanceof PHP_Token_SEMICOLON) {
                 if ($block === 0) {
@@ -376,7 +376,7 @@ public function getArguments()
         }
 
         $this->arguments = array();
-        $i               = $this->id + 2;
+        $i               = $this->id + 3;
         $tokens          = $this->tokenStream->tokens();
         $typeHint        = NULL;
 
diff --git a/core/vendor/phpunit/php-token-stream/PHP/Token/Stream.php b/core/vendor/phpunit/php-token-stream/PHP/Token/Stream.php
index a8be36fa7c16..77ba0dc11fae 100644
--- a/core/vendor/phpunit/php-token-stream/PHP/Token/Stream.php
+++ b/core/vendor/phpunit/php-token-stream/PHP/Token/Stream.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   PHP_TokenStream
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since     File available since Release 1.0.0
  */
@@ -44,8 +44,8 @@
 /**
  * A stream of PHP tokens.
  *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-token-stream/tree
diff --git a/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php b/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php
index 5c8cc21ba1fe..9895b3450926 100644
--- a/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php
+++ b/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2010, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2010, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   PHP_TokenStream
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2010 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link      http://github.com/sebastianbergmann/php-token-stream/tree
  * @since     File available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php.in b/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php.in
index 1cb39812fb8b..ebd488be87b6 100644
--- a/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php.in
+++ b/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php.in
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2010, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2010, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   PHP_TokenStream
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2010 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link      http://github.com/sebastianbergmann/php-token-stream/tree
  * @since     File available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/CachingFactory.php b/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/CachingFactory.php
index dd499675047d..6ff2c5db4c0b 100644
--- a/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/CachingFactory.php
+++ b/core/vendor/phpunit/php-token-stream/PHP/Token/Stream/CachingFactory.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,8 +35,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package   PHP_TokenStream
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since     File available since Release 1.0.0
  */
@@ -44,8 +44,8 @@
 /**
  * A caching factory for token stream objects.
  *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-token-stream/tree
diff --git a/core/vendor/phpunit/php-token-stream/Tests/Token/ClassTest.php b/core/vendor/phpunit/php-token-stream/Tests/Token/ClassTest.php
index 62f429bf41ec..5dd6e997ec02 100644
--- a/core/vendor/phpunit/php-token-stream/Tests/Token/ClassTest.php
+++ b/core/vendor/phpunit/php-token-stream/Tests/Token/ClassTest.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -37,7 +37,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since      File available since Release 1.0.2
  */
@@ -58,7 +58,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/Tests/Token/ClosureTest.php b/core/vendor/phpunit/php-token-stream/Tests/Token/ClosureTest.php
deleted file mode 100644
index 44b57a75fc6d..000000000000
--- a/core/vendor/phpunit/php-token-stream/Tests/Token/ClosureTest.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since      File available since Release 1.0.0
- */
-
-if (!defined('TEST_FILES_PATH')) {
-    define(
-      'TEST_FILES_PATH',
-      dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
-      '_files' . DIRECTORY_SEPARATOR
-    );
-}
-
-require_once 'PHP/Token/Stream.php';
-
-/**
- * Tests for the PHP_Token_FUNCTION class.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-token-stream/
- * @since      Class available since Release 1.0.0
- */
-class PHP_Token_ClosureTest extends PHPUnit_Framework_TestCase
-{
-    protected $functions;
-
-    protected function setUp()
-    {
-        $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'closure.php');
-
-        foreach ($ts as $token) {
-            if ($token instanceof PHP_Token_FUNCTION) {
-                $this->functions[] = $token;
-            }
-        }
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getArguments
-     */
-    public function testGetArguments()
-    {
-        $this->assertEquals(array('$foo' => null, '$bar' => null), $this->functions[0]->getArguments());
-        $this->assertEquals(array('$foo' => null, '$bar' => null, '$baz' => null), $this->functions[1]->getArguments());
-        $this->assertEquals(array(), $this->functions[2]->getArguments());
-        $this->assertEquals(array(), $this->functions[3]->getArguments());
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getName
-     */
-    public function testGetName()
-    {
-        $this->assertEquals('anonymous function', $this->functions[0]->getName());
-        $this->assertEquals('anonymous function', $this->functions[1]->getName());
-        $this->assertEquals('anonymous function', $this->functions[2]->getName());
-        $this->assertEquals('anonymous function', $this->functions[3]->getName());
-    }
-
-    /**
-     * @covers PHP_Token::getLine
-     */
-    public function testGetLine()
-    {
-        $this->assertEquals(2, $this->functions[0]->getLine());
-        $this->assertEquals(3, $this->functions[1]->getLine());
-        $this->assertEquals(4, $this->functions[2]->getLine());
-        $this->assertEquals(5, $this->functions[3]->getLine());
-    }
-
-    /**
-     * @covers PHP_TokenWithScope::getEndLine
-     */
-    public function testGetEndLine()
-    {
-        $this->assertEquals(2, $this->functions[0]->getLine());
-        $this->assertEquals(3, $this->functions[1]->getLine());
-        $this->assertEquals(4, $this->functions[2]->getLine());
-        $this->assertEquals(5, $this->functions[3]->getLine());
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/Tests/Token/FunctionTest.php b/core/vendor/phpunit/php-token-stream/Tests/Token/FunctionTest.php
index 779d62e85fa0..d57162b54dbb 100644
--- a/core/vendor/phpunit/php-token-stream/Tests/Token/FunctionTest.php
+++ b/core/vendor/phpunit/php-token-stream/Tests/Token/FunctionTest.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @package    PHP_TokenStream
  * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since      File available since Release 1.0.0
  */
@@ -57,8 +57,8 @@
  *
  * @package    PHP_TokenStream
  * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/Tests/Token/IncludeTest.php b/core/vendor/phpunit/php-token-stream/Tests/Token/IncludeTest.php
index 02e574e774e9..710be223e342 100644
--- a/core/vendor/phpunit/php-token-stream/Tests/Token/IncludeTest.php
+++ b/core/vendor/phpunit/php-token-stream/Tests/Token/IncludeTest.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -37,7 +37,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since      File available since Release 1.0.2
  */
@@ -59,7 +59,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/Tests/Token/InterfaceTest.php b/core/vendor/phpunit/php-token-stream/Tests/Token/InterfaceTest.php
index 8ad7bc2441c2..1c689bf82507 100644
--- a/core/vendor/phpunit/php-token-stream/Tests/Token/InterfaceTest.php
+++ b/core/vendor/phpunit/php-token-stream/Tests/Token/InterfaceTest.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,9 +36,9 @@
  *
  * @package    PHP_TokenStream
  * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since      File available since Release 1.0.0
  */
@@ -58,9 +58,9 @@
  *
  * @package    PHP_TokenStream
  * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/Tests/Token/NamespaceTest.php b/core/vendor/phpunit/php-token-stream/Tests/Token/NamespaceTest.php
index 0f3ef8215995..bc0dbcb32d89 100644
--- a/core/vendor/phpunit/php-token-stream/Tests/Token/NamespaceTest.php
+++ b/core/vendor/phpunit/php-token-stream/Tests/Token/NamespaceTest.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @package    PHP_TokenStream
  * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since      File available since Release 1.0.0
  */
@@ -57,8 +57,8 @@
  *
  * @package    PHP_TokenStream
  * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/Tests/TokenTest.php b/core/vendor/phpunit/php-token-stream/Tests/TokenTest.php
index 57fd57cac461..60cd0c7d9961 100644
--- a/core/vendor/phpunit/php-token-stream/Tests/TokenTest.php
+++ b/core/vendor/phpunit/php-token-stream/Tests/TokenTest.php
@@ -2,7 +2,7 @@
 /**
  * php-token-stream
  *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+ * Copyright (c) 2009-2012, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
  *
  * @package    PHP_TokenStream
  * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @since      File available since Release 1.0.0
  */
@@ -56,8 +56,8 @@
  *
  * @package    PHP_TokenStream
  * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright  2009-2012 Sebastian Bergmann <sb@sebastian-bergmann.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/Tests/_files/closure.php b/core/vendor/phpunit/php-token-stream/Tests/_files/closure.php
deleted file mode 100644
index 8b369403ec16..000000000000
--- a/core/vendor/phpunit/php-token-stream/Tests/_files/closure.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-$function1 = function($foo, $bar) use ($var) {};
-$function2 = function ($foo, $bar, $baz) {};
-$function3 = function () {};
-$function4 = function() {};
diff --git a/core/vendor/phpunit/php-token-stream/composer.json b/core/vendor/phpunit/php-token-stream/composer.json
index 7a69f260aad8..d67c03473949 100644
--- a/core/vendor/phpunit/php-token-stream/composer.json
+++ b/core/vendor/phpunit/php-token-stream/composer.json
@@ -5,7 +5,7 @@
     "keywords": [
         "tokenizer"
     ],
-    "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+    "homepage": "http://www.phpunit.de/",
     "license": "BSD-3-Clause",
     "authors": [
         {
diff --git a/core/vendor/phpunit/php-token-stream/package-composer.json b/core/vendor/phpunit/php-token-stream/package-composer.json
new file mode 100644
index 000000000000..a42eb94440c2
--- /dev/null
+++ b/core/vendor/phpunit/php-token-stream/package-composer.json
@@ -0,0 +1,19 @@
+{
+    "name": "phpunit/php-token-stream",
+    "keywords": [ "tokenizer" ],
+    "license": "BSD-3-Clause",
+    "homepage": "http://www.phpunit.de/",
+    "dependency_map": { },
+    "support": {
+        "issues": "https://github.com/sebastianbergmann/php-token-stream/issues",
+        "irc": "irc://irc.freenode.net/phpunit"
+    },
+    "autoload": {
+        "classmap": [ "PHP/" ]
+    },
+    "include_path": [
+        ""
+    ],
+    "version": false,
+    "time": false
+}
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit-mock-objects/Tests/MockObjectTest.php b/core/vendor/phpunit/phpunit-mock-objects/Tests/MockObjectTest.php
index af5cf5aedef6..7e8c5cf21807 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/Tests/MockObjectTest.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/Tests/MockObjectTest.php
@@ -565,9 +565,6 @@ public function testVerificationOfNeverFailsWithAnyParameters()
         $this->resetMockObjects();
     }
 
-    /**
-     * See https://github.com/sebastianbergmann/phpunit-mock-objects/issues/81
-     */
     public function testMockArgumentsPassedByReference() {
         $foo = $this->getMockBuilder('MethodCallbackByReference')
                     ->setMethods(array('bar'))
@@ -586,9 +583,6 @@ public function testMockArgumentsPassedByReference() {
         $this->assertEquals(1, $b);
     }
 
-    /**
-     * See https://github.com/sebastianbergmann/phpunit-mock-objects/issues/81
-     */
     public function testMockArgumentsPassedByReference2() {
         $foo = $this->getMockBuilder('MethodCallbackByReference')
                     ->disableOriginalConstructor()
@@ -598,7 +592,7 @@ public function testMockArgumentsPassedByReference2() {
         $foo->expects($this->any())
             ->method('bar')
             ->will($this->returnCallback(
-            function (&$a, &$b, $c) {
+            function ($a, &$b, $c) {
                 $b = 1;
             }
             ));
@@ -610,48 +604,6 @@ function (&$a, &$b, $c) {
         $this->assertEquals(1, $b);
     }
 
-    /**
-     * https://github.com/sebastianbergmann/phpunit-mock-objects/issues/116
-     */
-    public function testMockArgumentsPassedByReference3() {
-        $foo = $this->getMockBuilder('MethodCallbackByReference')
-                    ->setMethods(array('bar'))
-                    ->disableOriginalConstructor()
-                    ->disableArgumentCloning()
-                    ->getMock();
-
-        $a = new stdClass();
-        $b = $c = 0;
-
-        $foo->expects($this->any())
-            ->method('bar')
-            ->with($a, $b, $c)
-            ->will($this->returnCallback(array($foo, 'callback')));
-
-        $foo->bar($a, $b, $c);
-    }
-
-    /**
-     * https://github.com/sebastianbergmann/phpunit/issues/796
-     */
-    public function testMockArgumentsPassedByReference4() {
-        $foo = $this->getMockBuilder('MethodCallbackByReference')
-                    ->setMethods(array('bar'))
-                    ->disableOriginalConstructor()
-                    ->disableArgumentCloning()
-                    ->getMock();
-
-        $a = new stdClass();
-        $b = $c = 0;
-
-        $foo->expects($this->any())
-            ->method('bar')
-            ->with($this->isInstanceOf("stdClass"), $b, $c)
-            ->will($this->returnCallback(array($foo, 'callback')));
-
-        $foo->bar($a, $b, $c);
-    }
-
     /**
      * @requires extension soap
      */
diff --git a/core/vendor/phpunit/phpunit-mock-objects/Tests/_files/MethodCallbackByReference.php b/core/vendor/phpunit/phpunit-mock-objects/Tests/_files/MethodCallbackByReference.php
index d9d2447cc5b2..9a25db2c19cf 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/Tests/_files/MethodCallbackByReference.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/Tests/_files/MethodCallbackByReference.php
@@ -1,11 +1,11 @@
 <?php
 class MethodCallbackByReference
 {
-    public function bar(&$a, &$b, $c) {
+    public function bar($a, &$b, $c) {
         Legacy::bar($a, $b, $c);
     }
 
-    public function callback(&$a, &$b, $c) {
+    public function callback($a, &$b, $c) {
         $b = 1;
     }
 }
diff --git a/core/vendor/phpunit/phpunit/.travis.yml b/core/vendor/phpunit/phpunit/.travis.yml
index 3a279d6f5fc9..e0696e42eb32 100644
--- a/core/vendor/phpunit/phpunit/.travis.yml
+++ b/core/vendor/phpunit/phpunit/.travis.yml
@@ -9,14 +9,13 @@ env:
     - INSTALL_PHP_INVOKER=1
 
 before_script:
-    - composer install --dev --prefer-source
-    - sh -c "if [ '$INSTALL_PHP_INVOKER' = '1' ]; then git clone --branch=master --depth=100 --quiet git://github.com/sebastianbergmann/php-invoker.git vendor/php-invoker; fi"
+    - sh -c "if [ '$INSTALL_PHP_INVOKER' = '1' ]; then composer require --dev --prefer-source phpunit/php-invoker:\>=1.1.0,\<1.2.0; else composer install --dev --prefer-source; fi"
 
-script: php -d include_path=vendor:vendor/php-invoker -d auto_prepend_file=vendor/autoload.php ./phpunit.php --configuration ./build/travis-ci.xml
+script: ./phpunit.php --configuration ./build/travis-ci.xml
 
 notifications:
   email: false
-  irc: 
-    channels: 
+  irc:
+    channels:
       - "irc.freenode.org#phpunit"
     use_notice: true
diff --git a/core/vendor/phpunit/phpunit/ChangeLog.md b/core/vendor/phpunit/phpunit/ChangeLog.md
index b6fdefae80aa..e0cb167f5ae9 100644
--- a/core/vendor/phpunit/phpunit/ChangeLog.md
+++ b/core/vendor/phpunit/phpunit/ChangeLog.md
@@ -3,6 +3,28 @@ PHPUnit 3.7
 
 This is the list of changes for the PHPUnit 3.7 release series.
 
+PHPUnit 3.7.19
+--------------
+
+* Fixed #763: `assertTag()` fails to match content in CDATA sections.
+* Fixed #860: Version requirement for `symfony/yaml` is too restrictive.
+* Fixed #863: Number of tests to run calculated incorrectly when `--repeat` is used.
+
+PHPUnit 3.7.18
+--------------
+
+* Make sure the autoloader for PEAR-based installation is not used when PHPUnit is installed via Composer.
+
+PHPUnit 3.7.17
+--------------
+
+* Make sure the autoloader for PEAR-based installation is not used when PHPUnit is installed via Composer.
+
+PHPUnit 3.7.16
+--------------
+
+* Make sure the autoloader for PEAR-based installation is not used when PHPUnit is installed via Composer.
+
 PHPUnit 3.7.15
 --------------
 
diff --git a/core/vendor/phpunit/phpunit/PHPUnit/Autoload.php b/core/vendor/phpunit/phpunit/PHPUnit/Autoload.php
index bbc6b3f7fc50..4cd2196b716a 100644
--- a/core/vendor/phpunit/phpunit/PHPUnit/Autoload.php
+++ b/core/vendor/phpunit/phpunit/PHPUnit/Autoload.php
@@ -42,12 +42,30 @@
  * @since      File available since Release 3.5.0
  */
 
+if (defined('PHPUNIT_COMPOSER_INSTALL')) {
+    return;
+}
+
+$paths = array(
+  __DIR__ . '/../vendor',
+  __DIR__ . '/../../..'
+);
+
+foreach ($paths as $path) {
+    if (is_dir($path . '/composer') &&
+        is_file($path . '/autoload.php')) {
+        require_once $path . '/autoload.php';
+        define('PHPUNIT_COMPOSER_INSTALL', $path . '/autoload.php');
+
+        return;
+    }
+}
+
 require_once 'File/Iterator/Autoload.php';
 require_once 'PHP/CodeCoverage/Autoload.php';
 require_once 'PHP/Timer/Autoload.php';
 require_once 'PHPUnit/Framework/MockObject/Autoload.php';
 require_once 'Text/Template/Autoload.php';
-require_once 'Symfony/Component/Yaml/autoloader.php';
 
 spl_autoload_register(
   function ($class)
@@ -188,6 +206,26 @@ function ($class)
   }
 );
 
+// Symfony Yaml autoloader
+spl_autoload_register(
+  function ($class) {
+      if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\Yaml')) {
+          $file = sprintf(
+            'Symfony/Component/Yaml%s.php',
+
+            substr(
+              str_replace('\\', '/', $class),
+              strlen('Symfony\Component\Yaml')
+            )
+          );
+
+          if (stream_resolve_include_path($file)) {
+              require_once $file;
+          }
+      }
+  }
+);
+
 if (stream_resolve_include_path('PHP/Invoker/Autoload.php')) {
     require_once 'PHP/Invoker/Autoload.php';
 }
diff --git a/core/vendor/phpunit/phpunit/PHPUnit/Autoload.php.in b/core/vendor/phpunit/phpunit/PHPUnit/Autoload.php.in
index feab347a6233..e5059f3f27fd 100644
--- a/core/vendor/phpunit/phpunit/PHPUnit/Autoload.php.in
+++ b/core/vendor/phpunit/phpunit/PHPUnit/Autoload.php.in
@@ -42,12 +42,30 @@
  * @since      File available since Release 3.5.0
  */
 
+if (defined('PHPUNIT_COMPOSER_INSTALL')) {
+    return;
+}
+
+$paths = array(
+  __DIR__ . '/../vendor',
+  __DIR__ . '/../../..'
+);
+
+foreach ($paths as $path) {
+    if (is_dir($path . '/composer') &&
+        is_file($path . '/autoload.php')) {
+        require_once $path . '/autoload.php';
+        define('PHPUNIT_COMPOSER_INSTALL', $path . '/autoload.php');
+
+        return;
+    }
+}
+
 require_once 'File/Iterator/Autoload.php';
 require_once 'PHP/CodeCoverage/Autoload.php';
 require_once 'PHP/Timer/Autoload.php';
 require_once 'PHPUnit/Framework/MockObject/Autoload.php';
 require_once 'Text/Template/Autoload.php';
-require_once 'Symfony/Component/Yaml/autoloader.php';
 
 spl_autoload_register(
   function ($class)
@@ -71,6 +89,26 @@ spl_autoload_register(
   }
 );
 
+// Symfony Yaml autoloader
+spl_autoload_register(
+  function ($class) {
+      if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\Yaml')) {
+          $file = sprintf(
+            'Symfony/Component/Yaml%s.php',
+
+            substr(
+              str_replace('\\', '/', $class),
+              strlen('Symfony\Component\Yaml')
+            )
+          );
+
+          if (stream_resolve_include_path($file)) {
+              require_once $file;
+          }
+      }
+  }
+);
+
 if (stream_resolve_include_path('PHP/Invoker/Autoload.php')) {
     require_once 'PHP/Invoker/Autoload.php';
 }
diff --git a/core/vendor/phpunit/phpunit/PHPUnit/Framework/Process/TestCaseMethod.tpl.dist b/core/vendor/phpunit/phpunit/PHPUnit/Framework/Process/TestCaseMethod.tpl.dist
index d722d1a9f94d..65bb01a30188 100644
--- a/core/vendor/phpunit/phpunit/PHPUnit/Framework/Process/TestCaseMethod.tpl.dist
+++ b/core/vendor/phpunit/phpunit/PHPUnit/Framework/Process/TestCaseMethod.tpl.dist
@@ -1,7 +1,14 @@
 <?php
 ini_set('display_errors', 'stderr');
 set_include_path('{include_path}');
-require 'PHPUnit/Autoload.php';
+
+if ({composerAutoload}) {
+    require_once {composerAutoload};
+    define('PHPUNIT_COMPOSER_INSTALL', {composerAutoload});
+} else {
+    require 'PHPUnit/Autoload.php';
+}
+
 ob_start();
 
 function __phpunit_run_isolated_test()
diff --git a/core/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php b/core/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php
index 28fdd43ec15e..13a92eeb931c 100644
--- a/core/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php
+++ b/core/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php
@@ -735,6 +735,12 @@ public function run(PHPUnit_Framework_TestResult $result = NULL)
                 $strict = 'FALSE';
             }
 
+            if (defined('PHPUNIT_COMPOSER_INSTALL')) {
+                $composerAutoload = var_export(PHPUNIT_COMPOSER_INSTALL, TRUE);
+            } else {
+                $composerAutoload = '\'\'';
+            }
+
             $data            = var_export(serialize($this->data), TRUE);
             $dependencyInput = var_export(serialize($this->dependencyInput), TRUE);
             $includePath     = var_export(get_include_path(), TRUE);
@@ -746,6 +752,7 @@ public function run(PHPUnit_Framework_TestResult $result = NULL)
 
             $template->setVar(
               array(
+                'composerAutoload'               => $composerAutoload,
                 'filename'                       => $class->getFileName(),
                 'className'                      => $class->getName(),
                 'methodName'                     => $this->name,
diff --git a/core/vendor/phpunit/phpunit/PHPUnit/Runner/Version.php b/core/vendor/phpunit/phpunit/PHPUnit/Runner/Version.php
index 3a1cbf999ce3..d2b1b682f37e 100644
--- a/core/vendor/phpunit/phpunit/PHPUnit/Runner/Version.php
+++ b/core/vendor/phpunit/phpunit/PHPUnit/Runner/Version.php
@@ -56,7 +56,7 @@
  */
 class PHPUnit_Runner_Version
 {
-    const VERSION = '3.7.15';
+    const VERSION = '3.7.19';
     protected static $version;
 
     /**
diff --git a/core/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php b/core/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php
index 0dca51e538d0..ca4ceb0a9190 100644
--- a/core/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php
+++ b/core/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php
@@ -151,7 +151,7 @@ public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array())
         }
 
         if (is_integer($arguments['repeat'])) {
-            $suite = new PHPUnit_Extensions_RepeatedTest(
+            $test = new PHPUnit_Extensions_RepeatedTest(
               $suite,
               $arguments['repeat'],
               $arguments['filter'],
@@ -159,6 +159,9 @@ public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array())
               $arguments['excludeGroups'],
               $arguments['processIsolation']
             );
+
+            $suite = new PHPUnit_Framework_TestSuite();
+            $suite->addTest($test);
         }
 
         $result = $this->createTestResult();
diff --git a/core/vendor/phpunit/phpunit/PHPUnit/Util/XML.php b/core/vendor/phpunit/phpunit/PHPUnit/Util/XML.php
index b272153bfe30..3016312e5275 100644
--- a/core/vendor/phpunit/phpunit/PHPUnit/Util/XML.php
+++ b/core/vendor/phpunit/phpunit/PHPUnit/Util/XML.php
@@ -907,7 +907,8 @@ protected static function getNodeText(DOMNode $node)
         $result = '';
 
         foreach ($node->childNodes as $childNode) {
-            if ($childNode->nodeType === XML_TEXT_NODE) {
+            if ($childNode->nodeType === XML_TEXT_NODE ||
+                $childNode->nodeType === XML_CDATA_SECTION_NODE) {
                 $result .= trim($childNode->data) . ' ';
             } else {
                 $result .= self::getNodeText($childNode);
diff --git a/core/vendor/phpunit/phpunit/Tests/Framework/AssertTest.php b/core/vendor/phpunit/phpunit/Tests/Framework/AssertTest.php
index 387f641addfa..c9ad1eb70a4a 100644
--- a/core/vendor/phpunit/phpunit/Tests/Framework/AssertTest.php
+++ b/core/vendor/phpunit/phpunit/Tests/Framework/AssertTest.php
@@ -2835,6 +2835,29 @@ public function testAssertTagRegexpContentFalse()
         $this->assertTag($matcher, $this->html);
     }
 
+    /**
+     * @covers PHPUnit_Framework_Assert::assertTag
+     */
+    public function testAssertTagCdataContentTrue()
+    {
+        $matcher = array('tag' => 'script',
+                         'content' => 'alert(\'Hello, world!\');');
+        $this->assertTag($matcher, $this->html);
+    }
+
+    /**
+     * @covers            PHPUnit_Framework_Assert::assertTag
+     * @expectedException PHPUnit_Framework_AssertionFailedError
+     */
+    public function testAssertTagCdataontentFalse()
+    {
+        $matcher = array('tag' => 'script',
+                         'content' => 'asdf');
+        $this->assertTag($matcher, $this->html);
+    }
+
+
+
     /**
      * @covers PHPUnit_Framework_Assert::assertTag
      */
diff --git a/core/vendor/phpunit/phpunit/Tests/Regression/GitHub/863.phpt b/core/vendor/phpunit/phpunit/Tests/Regression/GitHub/863.phpt
new file mode 100644
index 000000000000..56f35fc58234
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/Tests/Regression/GitHub/863.phpt
@@ -0,0 +1,25 @@
+--TEST--
+GH-863: Number of tests to run calculated incorrectly when --repeat is used
+--FILE--
+<?php
+
+$_SERVER['argv'][1] = '--no-configuration';
+$_SERVER['argv'][2] = '--repeat';
+$_SERVER['argv'][3] = '50';
+$_SERVER['argv'][4] = 'BankAccountTest';
+$_SERVER['argv'][5] = dirname(dirname(dirname(__FILE__))) . '/_files/BankAccountTest.php';
+
+require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/PHPUnit/Autoload.php';
+PHPUnit_TextUI_Command::main();
+?>
+--EXPECTF--
+PHPUnit %s by Sebastian Bergmann.
+
+...............................................................  63 / 150 ( 42%)
+............................................................... 126 / 150 ( 84%)
+........................
+
+Time: %i %s, Memory: %sMb
+
+OK (150 tests, 150 assertions)
+
diff --git a/core/vendor/phpunit/phpunit/Tests/_files/SelectorAssertionsFixture.html b/core/vendor/phpunit/phpunit/Tests/_files/SelectorAssertionsFixture.html
index b8e908f42f1f..41256dab825e 100644
--- a/core/vendor/phpunit/phpunit/Tests/_files/SelectorAssertionsFixture.html
+++ b/core/vendor/phpunit/phpunit/Tests/_files/SelectorAssertionsFixture.html
@@ -4,7 +4,7 @@
  <head>
   <title>Login</title>
   <link type="text/css" rel="Stylesheet" href="/stylesheets/screen.css">
-  <script type="text/javaScript" src="/javascripts/login.js">
+  <script type="text/javascript">alert('Hello, world!');</script>
  </head>
  <body id="login">
   <ul id="my_ul" class="my_ul_class">
diff --git a/core/vendor/phpunit/phpunit/build/assertions.php b/core/vendor/phpunit/phpunit/build/assertions.php
old mode 100644
new mode 100755
diff --git a/core/vendor/phpunit/phpunit/composer.json b/core/vendor/phpunit/phpunit/composer.json
index 9e6cadf42fdf..fb57665ef344 100644
--- a/core/vendor/phpunit/phpunit/composer.json
+++ b/core/vendor/phpunit/phpunit/composer.json
@@ -27,7 +27,7 @@
         "phpunit/php-code-coverage": ">=1.2.1,<1.3.0",
         "phpunit/php-timer": ">=1.0.2,<1.1.0",
         "phpunit/phpunit-mock-objects": ">=1.2.0,<1.3.0",
-        "symfony/yaml": ">=2.2.0",
+        "symfony/yaml": ">=2.0.0,<2.3.0",
         "ext-dom": "*",
         "ext-pcre": "*",
         "ext-reflection": "*",
diff --git a/core/vendor/phpunit/phpunit/composer/bin/phpunit b/core/vendor/phpunit/phpunit/composer/bin/phpunit
index 9420bc499b71..0c2f0b26aa1a 100755
--- a/core/vendor/phpunit/phpunit/composer/bin/phpunit
+++ b/core/vendor/phpunit/phpunit/composer/bin/phpunit
@@ -42,19 +42,17 @@ $files = array(
   __DIR__ . '/../../../../autoload.php'
 );
 
-$found = FALSE;
-
 foreach ($files as $file) {
     if (file_exists($file)) {
         require $file;
 
-        $found = TRUE;
+        define('PHPUNIT_COMPOSER_INSTALL', $file);
 
         break;
     }
 }
 
-if (!$found) {
+if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
     die(
       'You need to set up the project dependencies using the following commands:' . PHP_EOL .
       'curl -s http://getcomposer.org/installer | php' . PHP_EOL .
diff --git a/core/vendor/phpunit/phpunit/package.xml b/core/vendor/phpunit/phpunit/package.xml
index a1e68a44177c..8eca51a6cf9b 100644
--- a/core/vendor/phpunit/phpunit/package.xml
+++ b/core/vendor/phpunit/phpunit/package.xml
@@ -17,9 +17,9 @@
   <email>sebastian@phpunit.de</email>
   <active>yes</active>
  </lead>
- <date>2013-03-01</date>
+ <date>2013-03-25</date>
  <version>
-  <release>3.7.15</release>
+  <release>3.7.19</release>
   <api>3.7.0</api>
  </version>
  <stability>
@@ -245,7 +245,8 @@
    <package>
     <name>Yaml</name>
     <channel>pear.symfony.com</channel>
-    <min>2.2.0</min>
+    <min>2.0.0</min>
+    <max>2.2.99</max>
    </package>
    <extension>
     <name>dom</name>
diff --git a/core/vendor/phpunit/phpunit/phpunit.php b/core/vendor/phpunit/phpunit/phpunit.php
old mode 100644
new mode 100755
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/.travis.yml b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/.travis.yml
index 48403e9b44d3..9c9cce938e40 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/.travis.yml
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/.travis.yml
@@ -5,11 +5,11 @@ php:
     - 5.4
 
 env:
-  - SYMFONY_VERSION=2.1.*
+  - SYMFONY_VERSION=2.2.*
   - SYMFONY_VERSION=dev-master
 
 before_script:
-  - composer require symfony/routing:${SYMFONY_VERSION}
+  - composer require symfony/routing:${SYMFONY_VERSION} --no-update
   - composer install --dev
 
 script: phpunit --coverage-text
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/CHANGELOG.md b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/CHANGELOG.md
new file mode 100644
index 000000000000..a93a031d4dce
--- /dev/null
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/CHANGELOG.md
@@ -0,0 +1,6 @@
+# Changelog
+
+## 1.1
+
+* Dropped Symfony 2.1 support and got rid of ConfigurableUrlMatcher class
+* Fix locale handling to always respect locale but never have unnecessary ?locale=
\ No newline at end of file
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainRouter.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainRouter.php
index 0d095588119a..23a43d47b4aa 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainRouter.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainRouter.php
@@ -12,7 +12,7 @@
 use Symfony\Component\Routing\RouteCollection;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface;
-use Symfony\Component\HttpKernel\Log\LoggerInterface;
+use Psr\Log\LoggerInterface;
 
 /**
  * ChainRouter
@@ -30,7 +30,8 @@ class ChainRouter implements RouterInterface, RequestMatcherInterface, WarmableI
     private $context;
 
     /**
-     * @var Symfony\Component\Routing\RouterInterface[]
+     * Array of arrays of routers grouped by priority
+     * @var array
      */
     private $routers = array();
 
@@ -45,7 +46,7 @@ class ChainRouter implements RouterInterface, RequestMatcherInterface, WarmableI
     private $routeCollection;
 
     /**
-     * @var null|\Symfony\Component\HttpKernel\Log\LoggerInterface
+     * @var null|\Psr\Log\LoggerInterface
      */
     protected $logger;
 
@@ -84,7 +85,7 @@ public function add(RouterInterface $router, $priority = 0)
     /**
      * Sorts the routers and flattens them.
      *
-     * @return array
+     * @return RouterInterface[]
      */
     public function all()
     {
@@ -133,26 +134,7 @@ protected function sortRouters()
      */
     public function match($url)
     {
-        $methodNotAllowed = null;
-
-        /** @var $router RouterInterface */
-        foreach ($this->all() as $router) {
-            try {
-                return $router->match($url);
-            } catch (ResourceNotFoundException $e) {
-                if ($this->logger) {
-                    $this->logger->info('Router '.get_class($router).' was not able to match, message "'.$e->getMessage().'"');
-                }
-                // Needs special care
-            } catch (MethodNotAllowedException $e) {
-                if ($this->logger) {
-                    $this->logger->info('Router '.get_class($router).' throws MethodNotAllowedException with message "'.$e->getMessage().'"');
-                }
-                $methodNotAllowed = $e;
-            }
-        }
-
-        throw $methodNotAllowed ?: new ResourceNotFoundException("None of the routers in the chain matched '$url'");
+        return $this->doMatch($url);
     }
 
     /**
@@ -161,6 +143,20 @@ public function match($url)
      * Loops through all routes and tries to match the passed request.
      */
     public function matchRequest(Request $request)
+    {
+        return $this->doMatch($request->getPathInfo(), $request);
+    }
+
+    /**
+     * Loops through all routers and tries to match the passed request or url.
+     *
+     * At least the  url must be provided, if a request is additionally provided
+     * the request takes precedence.
+     *
+     * @param string  $url
+     * @param Request $request
+     */
+    private function doMatch($url, Request $request = null)
     {
         $methodNotAllowed = null;
 
@@ -171,7 +167,8 @@ public function matchRequest(Request $request)
                 if ($router instanceof RequestMatcherInterface) {
                     return $router->matchRequest($request);
                 }
-                return $router->match($request->getPathInfo());
+                // every router implements the match method
+                return $router->match($url);
             } catch (ResourceNotFoundException $e) {
                 if ($this->logger) {
                     $this->logger->info('Router '.get_class($router).' was not able to match, message "'.$e->getMessage().'"');
@@ -185,7 +182,10 @@ public function matchRequest(Request $request)
             }
         }
 
-        throw $methodNotAllowed ?: new ResourceNotFoundException("None of the routers in the chain matched this request");
+        $info = $request
+            ? "this request\n$request"
+            : "url '$url'";
+        throw $methodNotAllowed ?: new ResourceNotFoundException("None of the routers in the chain matched $info");
     }
 
     /**
@@ -196,13 +196,12 @@ public function matchRequest(Request $request)
      */
     public function generate($name, $parameters = array(), $absolute = false)
     {
-        /** @var $router RouterInterface */
-        foreach ($this->all() as $router) {
+        $debug = array();
 
-            // if $name and $router does not implement ChainedRouterInterface and $name is not a string, continue
-            // if $name and $router does not implement ChainedRouterInterface and $name is string but does not match a default Symfony2 route name, continue
+        foreach ($this->all() as $router) {
+            // if $router does not implement ChainedRouterInterface and $name is not a string, continue
             if ($name && !$router instanceof ChainedRouterInterface) {
-                if (!is_string($name) || !preg_match(VersatileGeneratorInterface::CORE_NAME_PATTERN, $name)) {
+                if (! is_string($name)) {
                     continue;
                 }
             }
@@ -215,13 +214,24 @@ public function generate($name, $parameters = array(), $absolute = false)
             try {
                 return $router->generate($name, $parameters, $absolute);
             } catch (RouteNotFoundException $e) {
+                $hint = ($router instanceof VersatileGeneratorInterface)
+                    ? $router->getRouteDebugMessage($name, $parameters)
+                    : "Route '$name' not found";
+                $debug[] = $hint;
                 if ($this->logger) {
-                    $this->logger->info($e->getMessage());
+                    $this->logger->info('Router '.get_class($router)." was unable to generate route. Reason: '$hint': ".$e->getMessage());
                 }
             }
         }
 
-        throw new RouteNotFoundException(sprintf('None of the chained routers were able to generate route "%s".', $name));
+        if ($debug) {
+            $debug = array_unique($debug);
+            $info = implode(', ', $debug);
+        } else {
+            $info = "No route '$name' found";
+        }
+
+        throw new RouteNotFoundException(sprintf('None of the chained routers were able to generate route: %s', $info));
     }
 
     /**
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainedRouterInterface.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainedRouterInterface.php
index 0c6d19239eb0..29d276f75359 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainedRouterInterface.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainedRouterInterface.php
@@ -10,4 +10,4 @@
 interface ChainedRouterInterface extends RouterInterface, VersatileGeneratorInterface
 {
     // nothing new to add
-}
\ No newline at end of file
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ContentAwareGenerator.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ContentAwareGenerator.php
index aff0c0026cde..976c65f4ec0f 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ContentAwareGenerator.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ContentAwareGenerator.php
@@ -3,13 +3,8 @@
 namespace Symfony\Cmf\Component\Routing;
 
 use Symfony\Component\Routing\Route as SymfonyRoute;
-use Symfony\Component\Routing\RequestContext;
 use Symfony\Component\Routing\Exception\RouteNotFoundException;
 use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-use Symfony\Component\Routing\Generator\UrlGenerator;
-
-use Symfony\Cmf\Component\Routing\RouteProviderInterface;
 
 /**
  * A generator that tries to generate routes from object, route names or
@@ -46,8 +41,8 @@ public function setContentRepository(ContentRepositoryInterface $contentReposito
      *
      * @param string $name       ignored
      * @param array  $parameters must either contain the field 'route' with a
-     *      RouteObjectInterface or the field 'content' with the document
-     *      instance to get the route for (implementing RouteAwareInterface)
+     *      RouteObjectInterface or the field 'content_id' with a document
+     *      id to get the route for (implementing RouteAwareInterface)
      *
      * @throws RouteNotFoundException If there is no such route in the database
      */
@@ -66,6 +61,8 @@ public function generate($name, $parameters = array(), $absolute = false)
             throw new RouteNotFoundException('Route of this document is not an instance of Symfony\Component\Routing\Route but: '.$hint);
         }
 
+        $this->unsetLocaleIfNotNeeded($route, $parameters);
+
         return parent::generate($route, $parameters, $absolute);
     }
 
@@ -120,7 +117,9 @@ protected function getBestLocaleRoute(SymfonyRoute $route, $parameters)
     }
 
     /**
-     * Get the route based on the content field in parameters
+     * Get the route based on the $name that is a RouteAwareInterface or a
+     * RouteAwareInterface content found in the content repository with the
+     * content_id specified in parameters.
      *
      * Called in generate when there is no route given in the parameters.
      *
@@ -128,43 +127,45 @@ protected function getBestLocaleRoute(SymfonyRoute $route, $parameters)
      * first one that matches the _locale (provided in $parameters or otherwise
      * defaulting to the request locale).
      *
-     * If none is found, falls back to just return the first route.
+     * If no route with matching locale is found, falls back to just return the
+     * first route.
      *
      * @param mixed $name
      * @param array $parameters which should contain a content field containing a RouteAwareInterface object
      *
      * @return SymfonyRoute the route instance
      *
-     * @throws RouteNotFoundException if there is no content field in the
-     *      parameters or its not possible to build a route from that object
+     * @throws RouteNotFoundException if no route can be determined
      */
     protected function getRouteByContent($name, &$parameters)
     {
         if ($name instanceof RouteAwareInterface) {
             $content = $name;
-        } elseif (isset($parameters['content_id']) && null !== $this->contentRepository) {
+        } elseif (isset($parameters['content_id'])
+            && null !== $this->contentRepository
+        ) {
             $content = $this->contentRepository->findById($parameters['content_id']);
-        } elseif (isset($parameters['content'])) {
-            $content = $parameters['content'];
-        }
-
-        unset($parameters['content'], $parameters['content_id']);
-
-        if (empty($content)) {
-            throw new RouteNotFoundException('Neither the route name, nor a parameter "content" or "content_id" could be resolved to an content instance');
-        }
-
-        if (!$content instanceof RouteAwareInterface) {
-            $hint = is_object($content) ? get_class($content) : gettype($content);
-            throw new RouteNotFoundException('The content does not implement RouteAwareInterface: ' . $hint);
+            if (empty($content)) {
+                throw new RouteNotFoundException('The content repository found nothing at id ' . $parameters['content_id']);
+            }
+            if (!$content instanceof RouteAwareInterface) {
+                throw new RouteNotFoundException('Content repository did not return a RouteAwareInterface for id ' . $parameters['content_id']);
+            }
+        } else {
+            $hint = is_object($name) ? get_class($name) : gettype($name);
+            throw new RouteNotFoundException("The route name argument '$hint' is not RouteAwareInterface and there is no 'content_id' parameter");
         }
 
         $routes = $content->getRoutes();
         if (empty($routes)) {
-            $hint = method_exists($content, 'getPath') ? $content->getPath() : get_class($content);
-            throw new RouteNotFoundException('Document has no route: ' . $hint);
+            $hint = ($this->contentRepository && $this->contentRepository->getContentId($content))
+                ? $this->contentRepository->getContentId($content)
+                : get_class($content);
+            throw new RouteNotFoundException('Content document has no route: ' . $hint);
         }
 
+        unset($parameters['content_id']);
+
         $route = $this->getRouteByLocale($routes, $this->getLocale($parameters));
         if ($route) {
             return $route;
@@ -199,7 +200,8 @@ protected function getRouteByLocale($routes, $locale)
      * @param SymfonyRoute $route
      * @param string       $locale
      *
-     * @return bool TRUE if there is either no _locale, no _locale requirement or if the two match
+     * @return bool TRUE if there is either no $locale, no _locale requirement
+     *      on the route or if the requirement and the passed $locale match.
      */
     private function checkLocaleRequirement(SymfonyRoute $route, $locale)
     {
@@ -233,4 +235,39 @@ public function supports($name)
     {
         return ! $name || parent::supports($name) || $name instanceof RouteAwareInterface;
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function getRouteDebugMessage($name, array $parameters = array())
+    {
+        if (empty($name) && isset($parameters['content_id'])) {
+            return 'Content id ' . $parameters['content_id'];
+        }
+
+        if ($name instanceof RouteAwareInterface) {
+            return 'Route aware content ' . $name;
+        }
+
+        return parent::getRouteDebugMessage($name, $parameters);
+    }
+
+    /**
+     * Unset the _locale parameter if it is there and not needed
+     *
+     * @param SymfonyRoute $route
+     * @param array $parameters
+     */
+    protected  function unsetLocaleIfNotNeeded(SymfonyRoute $route, array &$parameters)
+    {
+        $locale = $this->getLocale($parameters);
+        if (null !== $locale) {
+            if (preg_match('/'.$route->getRequirement('_locale').'/', $locale) && $locale == $route->getDefault('_locale')) {
+                $compiledRoute = $route->compile();
+                if (!in_array('_locale', $compiledRoute->getVariables())) {
+                    unset($parameters['_locale']);
+                }
+            }
+        }
+    }
 }
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ContentRepositoryInterface.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ContentRepositoryInterface.php
index 415cd7d95d29..d8c5cb437258 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ContentRepositoryInterface.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ContentRepositoryInterface.php
@@ -24,4 +24,14 @@ interface ContentRepositoryInterface
      * @return object A content that matches this id.
      */
     public function findById($id);
-}
\ No newline at end of file
+
+    /**
+     * Return the content identifier for the provided content object for
+     * debugging purposes.
+     *
+     * @param object $content A content instance
+     *
+     * @return string|null $id id of the content object or null if unable to determine an id
+     */
+    public function getContentId($content);
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/DynamicRouter.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/DynamicRouter.php
index 2a1b9367039d..f9db1f1844cb 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/DynamicRouter.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/DynamicRouter.php
@@ -10,7 +10,9 @@
 use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
 use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
 use Symfony\Component\Routing\RequestContextAwareInterface;
+use Symfony\Component\Routing\Exception\RouteNotFoundException;
 use Symfony\Component\Routing\Exception\ResourceNotFoundException;
+use Symfony\Component\Routing\Exception\MethodNotAllowedException;
 
 use Symfony\Cmf\Component\Routing\Enhancer\RouteEnhancerInterface;
 
@@ -89,8 +91,11 @@ public function getRouteCollection()
      */
     public function getMatcher()
     {
-        // we may not set the context in DynamicRouter::setContext as this would lead to symfony cache warmup problems
-        // a request matcher does not need the request context separately as it can get it from the request.
+        /* we may not set the context in DynamicRouter::setContext as this
+         * would lead to symfony cache warmup problems.
+         * a request matcher does not need the request context separately as it
+         * can get it from the request.
+         */
         if ($this->matcher instanceof RequestContextAwareInterface) {
             $this->matcher->setContext($this->getContext());
         }
@@ -111,8 +116,8 @@ public function getGenerator()
     /**
      * Generates a URL from the given parameters.
      *
-     * If the generator is not able to generate the url, it must throw the RouteNotFoundException
-     * as documented below.
+     * If the generator is not able to generate the url, it must throw the
+     * RouteNotFoundException as documented below.
      *
      * @param string  $name       The name of the route
      * @param mixed   $parameters An array of parameters
@@ -137,11 +142,10 @@ public function generate($name, $parameters = array(), $absolute = false)
     public function supports($name)
     {
         if ($this->generator instanceof VersatileGeneratorInterface) {
-
             return $this->generator->supports($name);
         }
 
-        return (!is_string($name) || !preg_match(VersatileGeneratorInterface::CORE_NAME_PATTERN, $name));
+        return is_string($name);
     }
 
     /**
@@ -150,12 +154,14 @@ public function supports($name)
      * If the matcher can not find information, it must throw one of the
      * exceptions documented below.
      *
-     * @param string $pathinfo The path info to be parsed (raw format, i.e. not urldecoded)
+     * @param string $pathinfo The path info to be parsed (raw format, i.e. not
+     *      urldecoded)
      *
      * @return array An array of parameters
      *
      * @throws ResourceNotFoundException If the resource could not be found
-     * @throws MethodNotAllowedException If the resource was found but the request method is not allowed
+     * @throws MethodNotAllowedException If the resource was found but the
+     *      request method is not allowed
      *
      * @api
      */
@@ -187,16 +193,20 @@ public function match($pathinfo)
      * @return array An array of parameters
      *
      * @throws ResourceNotFoundException If no matching resource could be found
-     * @throws MethodNotAllowedException If a matching resource was found but the request method is not allowed
+     * @throws MethodNotAllowedException If a matching resource was found but
+     *      the request method is not allowed
      */
     public function matchRequest(Request $request)
     {
-        if (! empty($this->uriFilterRegexp) && ! preg_match($this->uriFilterRegexp, $request->getPathInfo())) {
+        if (! empty($this->uriFilterRegexp)
+            && ! preg_match($this->uriFilterRegexp, $request->getPathInfo())
+        ) {
             throw new ResourceNotFoundException("{$request->getPathInfo()} does not match the '{$this->uriFilterRegexp}' pattern");
         }
 
         $matcher = $this->getMatcher();
         if ($matcher instanceof UrlMatcherInterface) {
+            // the match method will enhance the route $defaults
             return $this->match($request->getPathInfo());
         }
 
@@ -208,8 +218,9 @@ public function matchRequest(Request $request)
     /**
      * Apply the route enhancers to the defaults, according to priorities
      *
-     * @param array $defaults
+     * @param array   $defaults
      * @param Request $request
+     *
      * @return array
      */
     protected function applyRouteEnhancers($defaults, Request $request)
@@ -217,6 +228,7 @@ protected function applyRouteEnhancers($defaults, Request $request)
         foreach ($this->getRouteEnhancers() as $enhancer) {
             $defaults = $enhancer->enhance($defaults, $request);
         }
+
         return $defaults;
     }
 
@@ -298,4 +310,18 @@ public function getContext()
     {
         return $this->context;
     }
+
+    /**
+     * {@inheritDoc}
+     *
+     * Forwards to the generator.
+     */
+    public function getRouteDebugMessage($name, array $parameters = array())
+    {
+        if ($this->generator instanceof VersatileGeneratorInterface) {
+            return $this->generator->getRouteDebugMessage($name, $parameters);
+        }
+
+        return "Route '$name' not found";
+    }
 }
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/NestedMatcher/ConfigurableUrlMatcher.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/NestedMatcher/ConfigurableUrlMatcher.php
deleted file mode 100644
index 40b77111521a..000000000000
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/NestedMatcher/ConfigurableUrlMatcher.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-namespace Symfony\Cmf\Component\Routing\NestedMatcher;
-
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-use Symfony\Cmf\Component\Routing\NestedMatcher\FinalMatcherInterface;
-
-/**
- * A final matcher that can proxy any matcher having the right constructor
- * signature, the same way the symfony core Router class does.
- *
- * @author DavidBuchmann
- */
-class ConfigurableUrlMatcher implements FinalMatcherInterface
-{
-    private $matcherClass;
-
-    public function __construct($matcherClass = 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher')
-    {
-        $this->matcherClass = $matcherClass;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function finalMatch(RouteCollection $collection, Request $request)
-    {
-        $context = new RequestContext();
-        $context->fromRequest($request);
-        $matcher = $this->getMatcher($collection, $context);
-        $attributes = $matcher->match($request->getPathInfo());
-
-        // cleanup route attributes
-        if (! isset($attributes[RouteObjectInterface::ROUTE_OBJECT])
-            || ! $attributes[RouteObjectInterface::ROUTE_OBJECT] instanceof Route
-        ) {
-            $name = $attributes['_route']; // this is the field coming from symfony core
-            $route = $collection->get($name);
-            $attributes[RouteObjectInterface::ROUTE_OBJECT] = $route;
-
-            if ($route instanceof RouteObjectInterface && is_string($route->getRouteKey())) {
-                $name = $route->getRouteKey();
-            }
-
-            if (is_string($name)) {
-                $attributes[RouteObjectInterface::ROUTE_NAME] = $name;
-            }
-        }
-
-        return $attributes;
-    }
-
-    /**
-     * @param RouteCollection $collection the route collection to match
-     * @param RequestContext  $context      the context to match in
-     *
-     * @return \Symfony\Component\Routing\Matcher\UrlMatcherInterface
-     */
-    protected function getMatcher(RouteCollection $collection, RequestContext $context)
-    {
-        return new $this->matcherClass($collection, $context);
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/NestedMatcher/UrlMatcher.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/NestedMatcher/UrlMatcher.php
index aac6fe7cbab1..bb1ef21c8645 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/NestedMatcher/UrlMatcher.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/NestedMatcher/UrlMatcher.php
@@ -28,6 +28,7 @@ public function finalMatch(RouteCollection $collection, Request $request)
         $context = new RequestContext();
         $context->fromRequest($request);
         $this->setContext($context);
+
         return $this->match($request->getPathInfo());
     }
 
@@ -41,6 +42,7 @@ protected function getAttributes(Route $route, $name, array $attributes)
         }
         $attributes[RouteObjectInterface::ROUTE_NAME] = $name;
         $attributes[RouteObjectInterface::ROUTE_OBJECT] = $route;
+
         return $this->mergeDefaults($attributes, $route->getDefaults());
     }
 }
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ProviderBasedGenerator.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ProviderBasedGenerator.php
index 96071350ee8a..2b2aa517dfaf 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ProviderBasedGenerator.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ProviderBasedGenerator.php
@@ -6,8 +6,7 @@
 use Symfony\Component\Routing\Exception\RouteNotFoundException;
 
 use Symfony\Component\Routing\Generator\UrlGenerator;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\Log\LoggerInterface;
+use Psr\Log\LoggerInterface;
 
 use Symfony\Cmf\Component\Routing\RouteProviderInterface;
 
@@ -44,13 +43,7 @@ public function generate($name, $parameters = array(), $absolute = false)
 
         // the Route has a cache of its own and is not recompiled as long as it does not get modified
         $compiledRoute = $route->compile();
-
-        // handle symfony 2.1 and 2.2
-        // getHostTokens exists only since 2.2
-        $hostTokens = null;
-        if (method_exists($compiledRoute, 'getHostTokens')) {
-            $hostTokens = $compiledRoute->getHostTokens();
-        }
+        $hostTokens = $compiledRoute->getHostTokens();
 
         return $this->doGenerate($compiledRoute->getVariables(), $route->getDefaults(), $route->getRequirements(), $compiledRoute->getTokens(), $parameters, $name, $absolute, $hostTokens);
     }
@@ -64,4 +57,21 @@ public function supports($name)
     {
         return is_string($name) || $name instanceof SymfonyRoute;
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function getRouteDebugMessage($name, array $parameters = array())
+    {
+        if ($name instanceof RouteObjectInterface) {
+            return 'Route with key ' . $name->getRouteKey();
+        }
+
+        if ($name instanceof SymfonyRoute) {
+            return 'Route with pattern ' . $name->getPattern();
+        }
+
+        return $name;
+    }
+
 }
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteAwareInterface.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteAwareInterface.php
index 59983c6a20b0..b95a6b8ec39c 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteAwareInterface.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteAwareInterface.php
@@ -11,12 +11,11 @@ interface RouteAwareInterface
     /**
      * Get the routes that point to this content.
      *
-     * Note: For PHPCR, as explained in RouteObjectInterface the route must use
-     * the routeContent field to store the reference to the content so you can
-     * get the routes with Referrers(filter="routeContent")
+     * Note: For PHPCR ODM, as explained in RouteObjectInterface the route must use the
+     * routeContent field to store the reference to the content so you can get the routes with
+     * Referrers(referringDocument="Symfony\Cmf\Bundle\RoutingBundle\Document\Route", referencedBy="routeContent")
      *
      * @return \Symfony\Component\Routing\Route[] Route instances that point to this content
      */
     public function getRoutes();
 }
-
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteObjectInterface.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteObjectInterface.php
index cd455e170e65..69e1e3369f8f 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteObjectInterface.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteObjectInterface.php
@@ -26,14 +26,6 @@ interface RouteObjectInterface
      */
     const ROUTE_OBJECT = '_route_object';
 
-    /**
-     * Constant for the field that is given to the ControllerAliasMapper.
-     * The value must be configured in the controllers_by_alias mapping.
-     *
-     * This is ignored if a _controller default value is provided as well
-     */
-    const CONTROLLER_ALIAS = '_controller_alias';
-
     /**
      * Field name for an explicit controller name to be used with this route
      */
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteProviderInterface.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteProviderInterface.php
index de9b64636484..ef8fe3e6d1a7 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteProviderInterface.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/RouteProviderInterface.php
@@ -31,7 +31,7 @@ interface RouteProviderInterface
      *
      * @param Request $request A request against which to match.
      *
-     * @return \Symfony\Component\Routing\RouteCollection with all urls that
+     * @return \Symfony\Component\Routing\RouteCollection with all Routes that
      *      could potentially match $request. Empty collection if nothing can
      *      match.
      */
@@ -40,8 +40,8 @@ public function getRouteCollectionForRequest(Request $request);
     /**
      * Find the route using the provided route name (and parameters)
      *
-     * @param string $name the route name to fetch
-     * @param array $parameters the parameters as they are passed to the
+     * @param string $name       the route name to fetch
+     * @param array  $parameters the parameters as they are passed to the
      *      UrlGeneratorInterface::generate call
      *
      * @return \Symfony\Component\Routing\Route
@@ -61,7 +61,7 @@ public function getRouteByName($name, $parameters = array());
      * simple implementation could be to just repeatedly call
      * $this->getRouteByName()
      *
-     * @param array $names the list of names to retrieve
+     * @param array $names      the list of names to retrieve
      * @param array $parameters the parameters as they are passed to the
      *      UrlGeneratorInterface::generate call. (Only one array, not one for
      *      each entry in $names.
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/FieldMapEnhancerTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/FieldMapEnhancerTest.php
index 982467a3add9..fa76a0348ce6 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/FieldMapEnhancerTest.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/FieldMapEnhancerTest.php
@@ -46,7 +46,6 @@ public function testFieldAlreadyThere()
         $this->assertEquals($defaults, $this->enhancer->enhance($defaults, $this->request));
     }
 
-
     public function testNoType()
     {
         $defaults = array();
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/FieldPresenceEnhancerTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/FieldPresenceEnhancerTest.php
index 78c3e100dc8b..f2a4aebbd5e5 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/FieldPresenceEnhancerTest.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/FieldPresenceEnhancerTest.php
@@ -4,7 +4,6 @@
 
 use Symfony\Component\HttpFoundation\Request;
 
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 use Symfony\Cmf\Component\Routing\Enhancer\FieldPresenceEnhancer;
 
 use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/RouteContentEnhancerTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/RouteContentEnhancerTest.php
index f097e855f50f..1206eaf2761e 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/RouteContentEnhancerTest.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/RouteContentEnhancerTest.php
@@ -41,7 +41,6 @@ public function testContent()
         $this->assertEquals($expected, $this->mapper->enhance($defaults, $this->request));
     }
 
-
     public function testFieldAlreadyThere()
     {
         $this->document->expects($this->never())
@@ -76,4 +75,4 @@ class TargetDocument
 
 class UnknownDocument
 {
-}
\ No newline at end of file
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/RouteObject.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/RouteObject.php
index 61093398bf02..86a2173df1a9 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/RouteObject.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Enhancer/RouteObject.php
@@ -15,4 +15,4 @@ public function getRouteKey()
     {
         return null;
     }
-}
\ No newline at end of file
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/NestedMatcher/ConfigurableUrlMatcherTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/NestedMatcher/ConfigurableUrlMatcherTest.php
deleted file mode 100644
index 1d672ad452e4..000000000000
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/NestedMatcher/ConfigurableUrlMatcherTest.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-
-namespace Symfony\Cmf\Component\Routing\Tests\NestedMatcher;
-
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-use Symfony\Cmf\Component\Routing\NestedMatcher\ConfigurableUrlMatcher;
-
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-
-class ConfigurableUrlMatcherTest extends CmfUnitTestCase
-{
-    protected $routeDocument;
-    protected $routeCompiled;
-    protected $matcher;
-    protected $context;
-    protected $request;
-
-    protected $url = '/foo/bar';
-
-    public function setUp()
-    {
-        $this->routeDocument = $this->buildMock('Symfony\\Cmf\\Component\\Routing\\Tests\\Routing\\RouteMock', array('getDefaults', 'getRouteKey', 'compile'));
-        $this->routeCompiled = $this->buildMock('Symfony\\Component\\Routing\\CompiledRoute');
-
-        $this->context = $this->buildMock('Symfony\\Component\\Routing\\RequestContext');
-        $this->request = Request::create($this->url);
-
-        $this->matcher = new ConfigurableUrlMatcher();
-    }
-
-    public function testMatch()
-    {
-        $this->routeCompiled->expects($this->atLeastOnce())
-            ->method('getStaticPrefix')
-            ->will($this->returnValue($this->url))
-        ;
-        $this->routeCompiled->expects($this->atLeastOnce())
-            ->method('getRegex')
-            ->will($this->returnValue('#'.str_replace('/', '\\/', $this->url).'#'))
-        ;
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('getDefaults')
-            ->will($this->returnValue(array('foo' => 'bar')))
-        ;
-        $this->routeDocument->expects($this->any())
-            ->method('getRouteKey')
-            ->will($this->returnValue('/routes/company/more'))
-        ;
-
-        // add some other routes to the collection
-        $mockCompiled = $this->buildMock('Symfony\\Component\\Routing\\CompiledRoute');
-        $mockCompiled->expects($this->any())
-            ->method('getStaticPrefix')
-            ->will($this->returnValue('/no/match'))
-        ;
-        $mockRoute = $this->getMockBuilder('Symfony\\Component\\Routing\\Route')->disableOriginalConstructor()->getMock();
-        $mockRoute->expects($this->any())
-            ->method('compile')
-            ->will($this->returnValue($mockCompiled))
-        ;
-
-        $routeCollection = new RouteCollection();
-        $routeCollection->add('some', $mockRoute);
-        $routeCollection->add('_company_more', $this->routeDocument);
-        $routeCollection->add('other', $mockRoute);
-
-        $results = $this->matcher->finalMatch($routeCollection, $this->request);
-
-        // the matched route returns a key
-        $expected = array(
-            RouteObjectInterface::ROUTE_NAME => '/routes/company/more',
-            RouteObjectInterface::ROUTE_OBJECT => $this->routeDocument,
-            'foo' => 'bar',
-        );
-
-        $this->assertEquals($expected, $results);
-    }
-
-    public function testMatchNoRouteObject()
-    {
-        $this->routeCompiled->expects($this->atLeastOnce())
-            ->method('getStaticPrefix')
-            ->will($this->returnValue($this->url))
-        ;
-        $this->routeCompiled->expects($this->atLeastOnce())
-            ->method('getRegex')
-            ->will($this->returnValue('#'.str_replace('/', '\\/', $this->url).'#'))
-        ;
-        $this->routeDocument = $this->getMockBuilder('Symfony\\Component\\Routing\\Route')->disableOriginalConstructor()->getMock();
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-        $this->routeDocument->expects($this->never())
-            ->method('getRouteKey')
-        ;
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('getDefaults')
-            ->will($this->returnValue(array('foo' => 'bar')))
-        ;
-
-        $mockCompiled = $this->buildMock('Symfony\\Component\\Routing\\CompiledRoute');
-        $mockCompiled->expects($this->any())
-            ->method('getStaticPrefix')
-            ->will($this->returnValue('/no/match'))
-        ;
-        $mockRoute = $this->getMockBuilder('Symfony\\Component\\Routing\\Route')->disableOriginalConstructor()->getMock();
-        $mockRoute->expects($this->any())
-            ->method('compile')
-            ->will($this->returnValue($mockCompiled))
-        ;
-        $routeCollection = new RouteCollection();
-        $routeCollection->add('some', $mockRoute);
-        $routeCollection->add('_company_more', $this->routeDocument);
-        $routeCollection->add('other', $mockRoute);
-
-        $results = $this->matcher->finalMatch($routeCollection, $this->request);
-
-        // the matched route does not return a key
-        $expected = array(
-            RouteObjectInterface::ROUTE_NAME => '_company_more',
-            RouteObjectInterface::ROUTE_OBJECT => $this->routeDocument,
-            'foo' => 'bar',
-        );
-
-        $this->assertEquals($expected, $results);
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/NestedMatcher/NestedMatcherTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/NestedMatcher/NestedMatcherTest.php
index 2bcee0e677fd..bf58afdb5c6e 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/NestedMatcher/NestedMatcherTest.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/NestedMatcher/NestedMatcherTest.php
@@ -105,8 +105,7 @@ public function testNestedMatcherPriority()
         try {
             $matcher->matchRequest($request);
             fail('nested matcher is eating exception');
-        } catch(ResourceNotFoundException $e)
-        {
+        } catch (ResourceNotFoundException $e) {
             // expected
         }
     }
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ChainRouterTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ChainRouterTest.php
index d76c1f95170e..adaafd6e003c 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ChainRouterTest.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ChainRouterTest.php
@@ -12,7 +12,7 @@ class ChainRouterTest extends CmfUnitTestCase
 {
     public function setUp()
     {
-        $this->router = new ChainRouter($this->getMock('Symfony\Component\HttpKernel\Log\LoggerInterface'));
+        $this->router = new ChainRouter($this->getMock('Psr\Log\LoggerInterface'));
         $this->context = $this->getMock('Symfony\\Component\\Routing\\RequestContext');
     }
 
@@ -125,7 +125,6 @@ public function testContext()
             ->with($this->context)
         ;
 
-
         $this->router->add($low, 10);
         $this->router->add($high, 100);
 
@@ -488,37 +487,6 @@ public function testGenerateObjectName()
         $this->assertEquals($name, $result);
     }
 
-    public function testGenerateNonDefaultStringName()
-    {
-        $name = '/test/this';
-        $parameters = array('test' => 'value');
-
-        $defaultRouter = $this->getMock('Symfony\\Component\\Routing\\RouterInterface');
-        $chainedRouter = $this->getMock('Symfony\\Cmf\\Component\\Routing\\ChainedRouterInterface');
-
-        $defaultRouter
-            ->expects($this->never())
-            ->method('generate')
-        ;
-        $chainedRouter
-            ->expects($this->once())
-            ->method('supports')
-            ->will($this->returnValue(true))
-        ;
-        $chainedRouter
-            ->expects($this->once())
-            ->method('generate')
-            ->with($name, $parameters, false)
-            ->will($this->returnValue($name))
-        ;
-
-        $this->router->add($defaultRouter, 200);
-        $this->router->add($chainedRouter, 100);
-
-        $result = $this->router->generate($name, $parameters);
-        $this->assertEquals($name, $result);
-    }
-
     public function testWarmup()
     {
         $dir = 'test_dir';
@@ -614,4 +582,4 @@ abstract class WarmableRouterMock implements \Symfony\Component\Routing\RouterIn
 
 abstract class RequestMatcher implements \Symfony\Component\Routing\RouterInterface, \Symfony\Component\Routing\Matcher\RequestMatcherInterface
 {
-}
\ No newline at end of file
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ContentAwareGeneratorTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ContentAwareGeneratorTest.php
index f59785436d0a..197266cc6789 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ContentAwareGeneratorTest.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ContentAwareGeneratorTest.php
@@ -2,7 +2,7 @@
 
 namespace Symfony\Cmf\Component\Routing\Tests\Routing;
 
-use Symfony\Component\Routing\Route as SymfonyRoute;
+use Symfony\Cmf\Component\Routing\RouteAwareInterface;
 
 use Symfony\Cmf\Component\Routing\ContentAwareGenerator;
 use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
@@ -14,6 +14,9 @@ class ContentAwareGeneratorTest extends CmfUnitTestCase
     protected $routeCompiled;
     protected $provider;
 
+    /**
+     * @var ContentAwareGenerator
+     */
     protected $generator;
     protected $context;
 
@@ -28,7 +31,6 @@ public function setUp()
         $this->generator = new TestableContentAwareGenerator($this->provider);
     }
 
-
     public function testGenerateFromContent()
     {
         $this->provider->expects($this->never())
@@ -52,7 +54,7 @@ public function testGenerateFromContentId()
             ->method('getRouteByName')
         ;
 
-        $contentRepository = $this->buildMock("Symfony\\Cmf\\Component\\Routing\\ContentRepositoryInterface", array('findById'));
+        $contentRepository = $this->buildMock("Symfony\\Cmf\\Component\\Routing\\ContentRepositoryInterface", array('findById', 'getContentId'));
         $contentRepository->expects($this->once())
             ->method('findById')
             ->with('/content/id')
@@ -89,7 +91,7 @@ public function testGenerateEmptyRouteString()
             ->will($this->returnValue($this->routeCompiled))
         ;
 
-        $this->assertEquals('result_url', $this->generator->generate('', array('content'=>$this->contentDocument)));
+        $this->assertEquals('result_url', $this->generator->generate($this->contentDocument));
     }
 
     public function testGenerateRouteMultilang()
@@ -118,7 +120,6 @@ public function testGenerateRouteMultilang()
         $this->assertEquals('result_url', $this->generator->generate($route_en, array('_locale' => 'de')));
     }
 
-
     public function testGenerateRouteMultilangNomatch()
     {
         $route_en = $this->buildMock('Symfony\\Cmf\\Component\\Routing\\Tests\\Routing\\RouteMock', array('getDefaults', 'compile', 'getRouteContent'));
@@ -224,7 +225,7 @@ public function testGenerateDocumentMultilang()
             ->will($this->returnValue($this->routeCompiled))
         ;
 
-        $this->assertEquals('result_url', $this->generator->generate('', array('content'=>$this->contentDocument, '_locale' => 'de')));
+        $this->assertEquals('result_url', $this->generator->generate($this->contentDocument, array('_locale' => 'de')));
     }
 
     /**
@@ -239,8 +240,61 @@ public function testGenerateNoContent()
      */
     public function testGenerateInvalidContent()
     {
-        $this->generator->generate('', array('content' => $this));
+        $this->generator->generate($this);
+    }
+
+    /**
+     * @expectedException Symfony\Component\Routing\Exception\RouteNotFoundException
+     */
+    public function testGenerateNoContentRepository()
+    {
+        $this->provider->expects($this->never())
+            ->method('getRouteByName')
+        ;
+
+        $this->generator->generate('', array('content_id' => '/content/id'));
+    }
+
+    /**
+     * @expectedException Symfony\Component\Routing\Exception\RouteNotFoundException
+     */
+    public function testGenerateNoContentFoundInRepository()
+    {
+        $this->provider->expects($this->never())
+            ->method('getRouteByName')
+        ;
+
+        $contentRepository = $this->buildMock("Symfony\\Cmf\\Component\\Routing\\ContentRepositoryInterface", array('findById', 'getContentId'));
+        $contentRepository->expects($this->once())
+            ->method('findById')
+            ->with('/content/id')
+            ->will($this->returnValue(null))
+        ;
+        $this->generator->setContentRepository($contentRepository);
+
+        $this->generator->generate('', array('content_id' => '/content/id'));
+    }
+
+    /**
+     * @expectedException Symfony\Component\Routing\Exception\RouteNotFoundException
+     */
+    public function testGenerateWrongContentClassInRepository()
+    {
+        $this->provider->expects($this->never())
+            ->method('getRouteByName')
+        ;
+
+        $contentRepository = $this->buildMock("Symfony\\Cmf\\Component\\Routing\\ContentRepositoryInterface", array('findById', 'getContentId'));
+        $contentRepository->expects($this->once())
+            ->method('findById')
+            ->with('/content/id')
+            ->will($this->returnValue($this))
+        ;
+        $this->generator->setContentRepository($contentRepository);
+
+        $this->generator->generate('', array('content_id' => '/content/id'));
     }
+
     /**
      * @expectedException Symfony\Component\Routing\Exception\RouteNotFoundException
      */
@@ -250,7 +304,7 @@ public function testGenerateNoRoutes()
             ->method('getRoutes')
             ->will($this->returnValue(array()));
 
-        $this->generator->generate('', array('content'=>$this->contentDocument));
+        $this->generator->generate($this->contentDocument);
     }
     /**
      * @expectedException Symfony\Component\Routing\Exception\RouteNotFoundException
@@ -261,7 +315,7 @@ public function testGenerateInvalidRoute()
             ->method('getRoutes')
             ->will($this->returnValue(array($this)));
 
-        $this->generator->generate('', array('content'=>$this->contentDocument));
+        $this->generator->generate($this->contentDocument);
     }
 
     public function testSupports()
@@ -271,6 +325,13 @@ public function testSupports()
         $this->assertTrue($this->generator->supports($this->contentDocument));
         $this->assertFalse($this->generator->supports($this));
     }
+
+    public function testGetRouteDebugMessage()
+    {
+        $this->assertContains('/some/content', $this->generator->getRouteDebugMessage(null, array('content_id' => '/some/content')));
+        $this->assertContains('/some/content', $this->generator->getRouteDebugMessage(new RouteAware()));
+        $this->assertContains('/some/content', $this->generator->getRouteDebugMessage('/some/content'));
+    }
 }
 
 /**
@@ -282,4 +343,16 @@ protected function doGenerate($variables, $defaults, $requirements, $tokens, $pa
     {
         return 'result_url';
     }
-}
\ No newline at end of file
+}
+
+class RouteAware implements RouteAwareInterface
+{
+    public function getRoutes()
+    {
+        return array();
+    }
+    public function __toString()
+    {
+        return '/some/content';
+    }
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/DynamicRouterTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/DynamicRouterTest.php
index 6055697ce231..b205ee199b87 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/DynamicRouterTest.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/DynamicRouterTest.php
@@ -3,11 +3,8 @@
 namespace Symfony\Cmf\Component\Routing\Tests\Routing;
 
 use Symfony\Component\HttpFoundation\Request;
-
 use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
 
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 use Symfony\Cmf\Component\Routing\DynamicRouter;
 
 use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
@@ -18,6 +15,7 @@ class DynamicRouterTest extends CmfUnitTestCase
     protected $matcher;
     protected $generator;
     protected $enhancer;
+    /** @var DynamicRouter */
     protected $router;
     protected $context;
     protected $request;
@@ -29,7 +27,7 @@ public function setUp()
         $this->routeDocument = $this->buildMock('Symfony\\Cmf\\Component\\Routing\\Tests\\Routing\\RouteMock', array('getDefaults'));
 
         $this->matcher = $this->buildMock('Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface');
-        $this->generator = $this->buildMock('Symfony\\Cmf\\Component\\Routing\\VersatileGeneratorInterface', array('supports', 'generate', 'setContext', 'getContext'));
+        $this->generator = $this->buildMock('Symfony\\Cmf\\Component\\Routing\\VersatileGeneratorInterface', array('supports', 'generate', 'setContext', 'getContext', 'getRouteDebugMessage'));
         $this->enhancer = $this->buildMock('Symfony\\Cmf\\Component\\Routing\\Enhancer\\RouteEnhancerInterface', array('enhance'));
 
         $this->context = $this->buildMock('Symfony\\Component\\Routing\\RequestContext');
@@ -55,7 +53,6 @@ public function testRouteCollection()
         // TODO: once this is implemented, check content of collection
     }
 
-
     /// generator tests ///
 
     public function testGetGenerator()
@@ -97,6 +94,16 @@ public function testSupports()
         $this->assertTrue($this->router->supports($name));
     }
 
+    public function testSupportsNonversatile()
+    {
+        $generator = $this->buildMock('Symfony\Component\Routing\Generator\UrlGeneratorInterface', array('generate', 'setContext', 'getContext'));
+        $router = new DynamicRouter($this->context, $this->matcher, $generator);
+        $this->assertInternalType('string', $router->getRouteDebugMessage('test'));
+
+        $this->assertTrue($router->supports('some string'));
+        $this->assertFalse($router->supports($this));
+    }
+
     /// match tests ///
 
     public function testGetMatcher()
@@ -131,7 +138,6 @@ public function testMatchUrl()
         $this->assertEquals($expected, $results);
     }
 
-
     public function testMatchRequestWithUrlMatcher()
     {
         $routeDefaults = array('foo' => 'bar');
@@ -238,4 +244,22 @@ public function testInvalidMatcher()
     {
         new DynamicRouter($this->context, $this, $this->generator);
     }
+
+    public function testRouteDebugMessage()
+    {
+        $this->generator->expects($this->once())
+            ->method('getRouteDebugMessage')
+            ->with($this->equalTo('test'), $this->equalTo(array()))
+            ->will($this->returnValue('debug message'))
+        ;
+
+        $this->assertEquals('debug message', $this->router->getRouteDebugMessage('test'));
+    }
+
+    public function testRouteDebugMessageNonversatile()
+    {
+        $generator = $this->buildMock('Symfony\Component\Routing\Generator\UrlGeneratorInterface', array('generate', 'setContext', 'getContext'));
+        $router = new DynamicRouter($this->context, $this->matcher, $generator);
+        $this->assertInternalType('string', $router->getRouteDebugMessage('test'));
+    }
 }
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ProviderBasedGeneratorTest.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ProviderBasedGeneratorTest.php
index 8f0861c861fa..e2fb96781b87 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ProviderBasedGeneratorTest.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/ProviderBasedGeneratorTest.php
@@ -2,8 +2,7 @@
 
 namespace Symfony\Cmf\Component\Routing\Tests\Routing;
 
-
-use Symfony\Component\Routing\RouteCollection;
+use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 use Symfony\Component\Routing\Route;
 
 use Symfony\Cmf\Component\Routing\ProviderBasedGenerator;
@@ -15,6 +14,7 @@ class ProviderBasedGeneratorTest extends CmfUnitTestCase
     protected $routeCompiled;
     protected $provider;
 
+    /** @var ProviderBasedGenerator */
     protected $generator;
     protected $context;
 
@@ -80,6 +80,13 @@ public function testSupports()
         $this->assertTrue($this->generator->supports($this->routeDocument));
         $this->assertFalse($this->generator->supports($this));
     }
+
+    public function testGetRouteDebugMessage()
+    {
+        $this->assertContains('/some/key', $this->generator->getRouteDebugMessage(new RouteObject()));
+        $this->assertContains('/de/test', $this->generator->getRouteDebugMessage(new Route('/de/test')));
+        $this->assertContains('/some/route', $this->generator->getRouteDebugMessage('/some/route'));
+    }
 }
 
 /**
@@ -92,3 +99,16 @@ protected function doGenerate($variables, $defaults, $requirements, $tokens, $pa
         return 'result_url';
     }
 }
+
+class RouteObject implements RouteObjectInterface
+{
+    public function getRouteKey()
+    {
+        return '/some/key';
+    }
+
+    public function getRouteContent()
+    {
+        return null;
+    }
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/RouteMock.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/RouteMock.php
index e028d2c6adc8..d92232c8fdef 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/RouteMock.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/Routing/RouteMock.php
@@ -23,6 +23,7 @@ public function getDefaults()
         if (! is_null($this->locale)) {
             $defaults['_locale'] = $this->locale;
         }
+
         return $defaults;
     }
     public function getRequirement($key)
@@ -30,10 +31,11 @@ public function getRequirement($key)
         if (! $key == '_locale') {
             throw new \Exception;
         }
+
         return $this->locale;
     }
     public function getRouteKey()
     {
         return null;
     }
-}
\ No newline at end of file
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/bootstrap.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/bootstrap.php
index cd9b88e38bd5..9f020f96a5a4 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/bootstrap.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/Tests/bootstrap.php
@@ -14,6 +14,7 @@
             return false;
         }
         require_once $path;
+
         return true;
     }
 });
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/VersatileGeneratorInterface.php b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/VersatileGeneratorInterface.php
index 9895cf060963..24f8210ab6b0 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/VersatileGeneratorInterface.php
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/VersatileGeneratorInterface.php
@@ -10,12 +10,6 @@
  */
 interface VersatileGeneratorInterface extends UrlGeneratorInterface
 {
-    /**
-     * If $name preg_match this pattern, the name is valid for symfony core
-     * compatible generators.
-     */
-    const CORE_NAME_PATTERN = '/^[a-z0-9A-Z_.]+$/';
-
     /**
      * Whether this generator supports the supplied $name.
      *
@@ -28,5 +22,16 @@ interface VersatileGeneratorInterface extends UrlGeneratorInterface
      * @return bool
      */
     public function supports($name);
-}
 
+    /**
+     * Convert a route identifier (name, content object etc) into a string
+     * usable for logging and other debug/error messages
+     *
+     * @param mixed $name
+     * @param array $parameters which should contain a content field containing
+     *                          a RouteAwareInterface object
+     *
+     * @return string
+     */
+    public function getRouteDebugMessage($name, array $parameters = array());
+}
diff --git a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/composer.json b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/composer.json
index 7f0a263980d8..7d077e54bb60 100644
--- a/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/composer.json
+++ b/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/composer.json
@@ -14,8 +14,12 @@
     "minimum-stability": "dev",
     "require": {
         "php": ">=5.3.2",
-        "symfony/routing": ">=2.1,<2.3-dev",
-        "symfony/http-kernel": ">=2.1,<2.3-dev"
+        "symfony/routing": ">=2.2,<2.3-dev",
+        "symfony/http-kernel": ">=2.2,<2.3-dev",
+        "psr/log": "~1.0"
+    },
+    "suggest": {
+        "symfony/http-foundation": "ChainRouter/DynamicRouter have optional support for Request instances, several enhancers require a Request instances, >=2.2,<2.3-dev"
     },
     "autoload": {
         "psr-0": { "Symfony\\Cmf\\Component\\Routing": "" }
@@ -23,7 +27,7 @@
     "target-dir": "Symfony/Cmf/Component/Routing",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.0-dev"
+            "dev-master": "1.1-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
index 1de202a5beab..6a0ea6b8f851 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
@@ -169,18 +169,19 @@ public static function fixNamespaceDeclarations($source)
                     $inNamespace = false;
                     prev($tokens);
                 } else {
-                    $rawChunk = rtrim($rawChunk) . "\n{";
+                    $rawChunk = rtrim($rawChunk)."\n{";
                     $inNamespace = true;
                 }
             } elseif (T_START_HEREDOC === $token[0]) {
-                $output .= self::compressCode($rawChunk) . $token[1];
+                $output .= self::compressCode($rawChunk).$token[1];
                 do {
                     $token = next($tokens);
-                    $output .= $token[1];
+                    $output .= is_string($token) ? $token : $token[1];
                 } while ($token[0] !== T_END_HEREDOC);
+                $output .= "\n";
                 $rawChunk = '';
             } elseif (T_CONSTANT_ENCAPSED_STRING === $token[0]) {
-                $output .= self::compressCode($rawChunk) . $token[1];
+                $output .= self::compressCode($rawChunk).$token[1];
                 $rawChunk = '';
             } else {
                 $rawChunk .= $token[1];
@@ -191,7 +192,7 @@ public static function fixNamespaceDeclarations($source)
             $rawChunk .= "}\n";
         }
 
-        return $output . self::compressCode($rawChunk);
+        return $output.self::compressCode($rawChunk);
     }
 
     /**
@@ -360,6 +361,7 @@ private static function resolveDependencies(array $tree, $node, \ArrayObject $re
         }
         $resolved[$nodeName] = $node;
         unset($unresolved[$nodeName]);
+
         return $resolved;
     }
 }
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
index d8de936382a9..842f4744c0f6 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
@@ -53,7 +53,7 @@ public static function enable()
         }
 
         foreach ($functions as $function) {
-            if (is_array($function) && method_exists($function[0], 'findFile')) {
+            if (is_array($function) && !$function[0] instanceof self && method_exists($function[0], 'findFile')) {
                 $function = array(new static($function[0]), 'loadClass');
             }
 
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
index 73bdc46d700d..dfa51e37fed1 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
@@ -206,7 +206,9 @@ public function testCommentStripping()
             unlink($file);
         }
         spl_autoload_register($r = function ($class) {
-            require_once __DIR__.'/Fixtures/'.str_replace(array('\\', '_'), '/', $class).'.php';
+            if (0 === strpos($class, 'Namespaced') || 0 === strpos($class, 'Pearlike_')) {
+                require_once __DIR__.'/Fixtures/'.str_replace(array('\\', '_'), '/', $class).'.php';
+            }
         });
 
         ClassCollectionLoader::load(
@@ -225,21 +227,23 @@ class WithComments
 {
 public static \$loaded = true;
 }
-\$string ='string shoult not be   modified';
-\$heredoc =<<<HD
+\$string ='string shoult not be   modified {\$string}';
+\$heredoc = (<<<HD
 
 
-Heredoc should not be   modified
+Heredoc should not be   modified {\$string}
 
 
-HD;
+HD
+);
 \$nowdoc =<<<'ND'
 
 
-Nowdoc should not be   modified
+Nowdoc should not be   modified {\$string}
 
 
-ND;
+ND
+;
 }
 namespace
 {
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/DebugClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/DebugClassLoaderTest.php
new file mode 100644
index 000000000000..ffbcafbd2267
--- /dev/null
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/DebugClassLoaderTest.php
@@ -0,0 +1,51 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\ClassLoader\Tests;
+
+use Symfony\Component\ClassLoader\ClassLoader;
+use Symfony\Component\ClassLoader\DebugClassLoader;
+
+class DebugClassLoaderTest extends \PHPUnit_Framework_TestCase
+{
+    private $loader;
+
+    protected function setUp()
+    {
+        $this->loader = new ClassLoader();
+        spl_autoload_register(array($this->loader, 'loadClass'));
+    }
+
+    protected function tearDown()
+    {
+        spl_autoload_unregister(array($this->loader, 'loadClass'));
+    }
+
+    public function testIdempotence()
+    {
+        DebugClassLoader::enable();
+        DebugClassLoader::enable();
+
+        $functions = spl_autoload_functions();
+        foreach ($functions as $function) {
+            if (is_array($function) && $function[0] instanceof DebugClassLoader) {
+                $reflClass = new \ReflectionClass($function[0]);
+                $reflProp = $reflClass->getProperty('classFinder');
+                $reflProp->setAccessible(true);
+
+                $this->assertNotInstanceOf('Symfony\Component\ClassLoader\DebugClassLoader', $reflProp->getValue($function[0]));
+                return;
+            }
+        }
+
+        throw new \Exception('DebugClassLoader did not register');
+    }
+}
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/WithComments.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/WithComments.php
index e6f87c65d630..53d520031e3a 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/WithComments.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/WithComments.php
@@ -17,21 +17,21 @@ class WithComments
     public static $loaded = true;
 }
 
-$string = 'string shoult not be   modified';
+$string = 'string shoult not be   modified {$string}';
 
+$heredoc = (<<<HD
 
-$heredoc = <<<HD
 
+Heredoc should not be   modified {$string}
 
-Heredoc should not be   modified
 
-
-HD;
+HD
+);
 
 $nowdoc = <<<'ND'
 
 
-Nowdoc should not be   modified
+Nowdoc should not be   modified {$string}
 
 
 ND;
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAwareInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAwareInterface.php
index eb96632c6655..e85bb53dcb9a 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAwareInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAwareInterface.php
@@ -23,7 +23,7 @@ interface ContainerAwareInterface
     /**
      * Sets the Container.
      *
-     * @param ContainerInterface $container A ContainerInterface instance
+     * @param ContainerInterface|null $container A ContainerInterface instance or null
      *
      * @api
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
index d4a62b8baebd..5b178714bffe 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
@@ -347,15 +347,15 @@ public function getScopeChildren()
      */
     public function set($id, $service, $scope = self::SCOPE_CONTAINER)
     {
+        $id = strtolower($id);
+
         if ($this->isFrozen()) {
             // setting a synthetic service on a frozen container is alright
             if (!isset($this->definitions[$id]) || !$this->definitions[$id]->isSynthetic()) {
-                throw new BadMethodCallException('Setting service on a frozen container is not allowed');
+                throw new BadMethodCallException(sprintf('Setting service "%s" on a frozen container is not allowed.', $id));
             }
         }
 
-        $id = strtolower($id);
-
         unset($this->definitions[$id], $this->aliases[$id]);
 
         parent::set($id, $service, $scope);
@@ -431,7 +431,12 @@ public function get($id, $invalidBehavior = ContainerInterface::EXCEPTION_ON_INV
 
             $this->loading[$id] = true;
 
-            $service = $this->createService($definition, $id);
+            try {
+                $service = $this->createService($definition, $id);
+            } catch (\Exception $e) {
+                unset($this->loading[$id]);
+                throw $e;
+            }
 
             unset($this->loading[$id]);
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
index e4e168257e4e..0574df455e4a 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
@@ -260,7 +260,7 @@ private function prepareParameters($parameters, $escape = true)
         foreach ($parameters as $key => $value) {
             if (is_array($value)) {
                 $value = $this->prepareParameters($value, $escape);
-            } elseif ($value instanceof Reference) {
+            } elseif ($value instanceof Reference || is_string($value) && 0 === strpos($value, '@')) {
                 $value = '@'.$value;
             }
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
index 6296f5be49bb..f925f78ab27e 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
@@ -210,7 +210,7 @@ protected function parseFile($file)
         try {
             $dom = XmlUtils::loadFile($file, array($this, 'validateSchema'));
         } catch (\InvalidArgumentException $e) {
-            throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e);
+            throw new InvalidArgumentException(sprintf('Unable to parse file "%s".', $file), $e->getCode(), $e);
         }
 
         $this->validateExtensions($dom, $file);
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
index 71de4ac6592f..05215cdb6b9a 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
@@ -290,7 +290,10 @@ private function resolveServices($value)
         if (is_array($value)) {
             $value = array_map(array($this, 'resolveServices'), $value);
         } elseif (is_string($value) &&  0 === strpos($value, '@')) {
-            if (0 === strpos($value, '@?')) {
+            if (0 === strpos($value, '@@')) {
+                $value = substr($value, 1);
+                $invalidBehavior = null;
+            } elseif (0 === strpos($value, '@?')) {
                 $value = substr($value, 2);
                 $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
             } else {
@@ -305,7 +308,9 @@ private function resolveServices($value)
                 $strict = true;
             }
 
-            $value = new Reference($value, $invalidBehavior, $strict);
+            if (null !== $invalidBehavior) {
+                $value = new Reference($value, $invalidBehavior, $strict);
+            }
         }
 
         return $value;
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
index de542db17b1c..bfd92798dc4c 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
@@ -19,6 +19,7 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Exception\RuntimeException;
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
 use Symfony\Component\Config\Resource\FileResource;
@@ -116,6 +117,26 @@ public function testGet()
         $this->assertTrue($builder->get('bar') === $builder->get('bar'), '->get() always returns the same instance if the service is shared');
     }
 
+    /**
+     * @covers                   \Symfony\Component\DependencyInjection\ContainerBuilder::get
+     * @expectedException        \Symfony\Component\DependencyInjection\Exception\RuntimeException
+     * @expectedExceptionMessage You have requested a synthetic service ("foo"). The DIC does not know how to construct this service.
+     */
+    public function testGetUnsetLoadingServiceWhenCreateServiceThrowsAnException()
+    {
+        $builder = new ContainerBuilder();
+        $builder->register('foo', 'stdClass')->setSynthetic(true);
+
+        // we expect a RuntimeException here as foo is synthetic
+        try {
+            $builder->get('foo');
+        } catch (RuntimeException $e) {
+        }
+
+        // we must also have the same RuntimeException here
+        $builder->get('foo');
+    }
+
     /**
      * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getServiceIds
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container8.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container8.php
index 28c65369c22e..eec856412b09 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container8.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container8.php
@@ -7,6 +7,7 @@
     'FOO'    => '%baz%',
     'baz'    => 'bar',
     'bar'    => 'foo is %%foo bar',
+    'escape' => '@escapeme',
     'values' => array(true, false, null, 0, 1000.3, 'true', 'false', 'null'),
 )));
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
index 77e4183a7cfc..77712e8297d1 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
@@ -37,6 +37,7 @@ protected function getDefaultParameters()
             'foo' => '%baz%',
             'baz' => 'bar',
             'bar' => 'foo is %%foo bar',
+            'escape' => '@escapeme',
             'values' => array(
                 0 => true,
                 1 => false,
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services8.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services8.xml
index f11d6069defd..c5fa5fb52d15 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services8.xml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services8.xml
@@ -7,6 +7,7 @@
     <parameter key="foo">%baz%</parameter>
     <parameter key="baz">bar</parameter>
     <parameter key="bar">foo is %%foo bar</parameter>
+    <parameter key="escape">@escapeme</parameter>
     <parameter key="values" type="collection">
       <parameter>true</parameter>
       <parameter>false</parameter>
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services2.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services2.yml
index 8ddfe0d42117..3c127466af80 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services2.yml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services2.yml
@@ -6,6 +6,7 @@ parameters:
         - 0
         - 1000.3
     bar: foo
+    escape: @@escapeme
     foo_bar: @foo_bar
     MixedCase:
         MixedCaseKey: value
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services8.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services8.yml
index 5e747486cb25..a1fb59035855 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services8.yml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services8.yml
@@ -2,5 +2,6 @@ parameters:
     foo: '%baz%'
     baz: bar
     bar: 'foo is %%foo bar'
+    escape: '@@escapeme'
     values: [true, false, null, 0, 1000.3, 'true', 'false', 'null']
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
index 40ffd63af9b5..0287a1b0aa33 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
@@ -50,7 +50,7 @@ public function testLoad()
             $loader->load('foo.xml');
             $this->fail('->load() throws an InvalidArgumentException if the loaded file does not exist');
         } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the loaded file does not exist');
+            $this->assertInstanceOf('InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the loaded file does not exist');
             $this->assertStringStartsWith('The file "foo.xml" does not exist (in:', $e->getMessage(), '->load() throws an InvalidArgumentException if the loaded file does not exist');
         }
     }
@@ -66,7 +66,11 @@ public function testParseFile()
             $m->invoke($loader, self::$fixturesPath.'/ini/parameters.ini');
             $this->fail('->parseFile() throws an InvalidArgumentException if the loaded file is not a valid XML file');
         } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->parseFile() throws an InvalidArgumentException if the loaded file is not a valid XML file');
+            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->parseFile() throws an InvalidArgumentException if the loaded file is not a valid XML file');
+            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'parameters.ini'), $e->getMessage(), '->parseFile() throws an InvalidArgumentException if the loaded file is not a valid XML file');
+
+            $e = $e->getPrevious();
+            $this->assertInstanceOf('InvalidArgumentException', $e, '->parseFile() throws an InvalidArgumentException if the loaded file is not a valid XML file');
             $this->assertStringStartsWith('[ERROR 4] Start tag expected, \'<\' not found (in', $e->getMessage(), '->parseFile() throws an InvalidArgumentException if the loaded file is not a valid XML file');
         }
 
@@ -76,7 +80,11 @@ public function testParseFile()
             $m->invoke($loader, self::$fixturesPath.'/xml/nonvalid.xml');
             $this->fail('->parseFile() throws an InvalidArgumentException if the loaded file does not validate the XSD');
         } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->parseFile() throws an InvalidArgumentException if the loaded file does not validate the XSD');
+            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->parseFile() throws an InvalidArgumentException if the loaded file does not validate the XSD');
+            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'nonvalid.xml'), $e->getMessage(), '->parseFile() throws an InvalidArgumentException if the loaded file is not a valid XML file');
+
+            $e = $e->getPrevious();
+            $this->assertInstanceOf('InvalidArgumentException', $e, '->parseFile() throws an InvalidArgumentException if the loaded file does not validate the XSD');
             $this->assertStringStartsWith('[ERROR 1845] Element \'nonvalid\': No matching global declaration available for the validation root. (in', $e->getMessage(), '->parseFile() throws an InvalidArgumentException if the loaded file does not validate the XSD');
         }
 
@@ -262,8 +270,12 @@ public function testExtensions()
             $loader->load('extensions/services3.xml');
             $this->fail('->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
         } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertRegexp('/The attribute \'bar\' is not allowed/', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'services3.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+
+            $e = $e->getPrevious();
+            $this->assertInstanceOf('InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertContains('The attribute \'bar\' is not allowed', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
         }
 
         // non-registered extension
@@ -295,8 +307,12 @@ public function testExtensionInPhar()
             $loader->load('extensions/services7.xml');
             $this->fail('->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
         } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertRegexp('/The attribute \'bar\' is not allowed/', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'services7.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+
+            $e = $e->getPrevious();
+            $this->assertInstanceOf('InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
+            $this->assertContains('The attribute \'bar\' is not allowed', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
         }
     }
 
@@ -333,15 +349,23 @@ public function testNoNamingConflictsForAnonymousServices()
         $this->assertEquals('BarClass2', $inner2->getClass(), '->load() uses the same configuration as for the anonymous ones');
     }
 
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Document types are not allowed.
-     */
     public function testDocTypeIsNotAllowed()
     {
         $container = new ContainerBuilder();
 
-        $loader1 = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader1->load('withdoctype.xml');
+        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
+
+        // document types are not allowed.
+        try {
+            $loader->load('withdoctype.xml');
+            $this->fail('->load() throws an InvalidArgumentException if the configuration contains a document type');
+        } catch (\Exception $e) {
+            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration contains a document type');
+            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'withdoctype.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration contains a document type');
+
+            $e = $e->getPrevious();
+            $this->assertInstanceOf('InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration contains a document type');
+            $this->assertSame('Document types are not allowed.', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration contains a document type');
+        }
     }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
index e655d3bd8981..39cfce52f3d6 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
@@ -84,7 +84,7 @@ public function testLoadParameters()
         $container = new ContainerBuilder();
         $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
         $loader->load('services2.yml');
-        $this->assertEquals(array('foo' => 'bar', 'mixedcase' => array('MixedCaseKey' => 'value'), 'values' => array(true, false, 0, 1000.3), 'bar' => 'foo', 'foo_bar' => new Reference('foo_bar')), $container->getParameterBag()->all(), '->load() converts YAML keys to lowercase');
+        $this->assertEquals(array('foo' => 'bar', 'mixedcase' => array('MixedCaseKey' => 'value'), 'values' => array(true, false, 0, 1000.3), 'bar' => 'foo', 'escape' => '@escapeme', 'foo_bar' => new Reference('foo_bar')), $container->getParameterBag()->all(), '->load() converts YAML keys to lowercase');
     }
 
     public function testLoadImports()
@@ -99,7 +99,7 @@ public function testLoadImports()
         $loader->load('services4.yml');
 
         $actual = $container->getParameterBag()->all();
-        $expected = array('foo' => 'bar', 'values' => array(true, false), 'bar' => '%foo%', 'foo_bar' => new Reference('foo_bar'), 'mixedcase' => array('MixedCaseKey' => 'value'), 'imported_from_ini' => true, 'imported_from_xml' => true);
+        $expected = array('foo' => 'bar', 'values' => array(true, false), 'bar' => '%foo%', 'escape' => '@escapeme', 'foo_bar' => new Reference('foo_bar'), 'mixedcase' => array('MixedCaseKey' => 'value'), 'imported_from_ini' => true, 'imported_from_xml' => true);
         $this->assertEquals(array_keys($expected), array_keys($actual), '->load() imports and merges imported files');
 
         // Bad import throws no exception due to ignore_errors value.
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
index f3895f464e47..b579eb991a14 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
@@ -149,7 +149,7 @@ public function get($key, $default = null, $first = true)
      *
      * @param string       $key     The key
      * @param string|array $values  The value or an array of values
-     * @param Boolean      $replace Whether to replace the actual value of not (true by default)
+     * @param Boolean      $replace Whether to replace the actual value or not (true by default)
      *
      * @api
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
index 867a29b6afc6..c48082a675f3 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
@@ -1345,7 +1345,18 @@ public function getPreferredLanguage(array $locales = null)
             return $locales[0];
         }
 
-        $preferredLanguages = array_values(array_intersect($preferredLanguages, $locales));
+        $extendedPreferredLanguages = array();
+        foreach ($preferredLanguages as $language) {
+            $extendedPreferredLanguages[] = $language;
+            if (false !== $position = strpos($language, '_')) {
+                $superLanguage = substr($language, 0, $position);
+                if (!in_array($superLanguage, $preferredLanguages)) {
+                    $extendedPreferredLanguages[] = $superLanguage;
+                }
+            }
+        }
+
+        $preferredLanguages = array_values(array_intersect($extendedPreferredLanguages, $locales));
 
         return isset($preferredLanguages[0]) ? $preferredLanguages[0] : $locales[0];
     }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
index d0b549b4eeec..7ac4e8005603 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
@@ -258,7 +258,7 @@ public function prepare(Request $request)
          * @link http://support.microsoft.com/kb/323308
          */
         if (false !== stripos($this->headers->get('Content-Disposition'), 'attachment') && preg_match('/MSIE (.*?);/i', $request->server->get('HTTP_USER_AGENT'), $match) == 1 && true === $request->isSecure()) {
-            if(intval(preg_replace("/(MSIE )(.*?);/", "$2", $match[0])) < 9) {
+            if (intval(preg_replace("/(MSIE )(.*?);/", "$2", $match[0])) < 9) {
                 $this->headers->remove('Cache-Control');
             }
         }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
index 2f1a4222e721..e9d0257152ec 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
@@ -31,7 +31,7 @@ class AttributeBag implements AttributeBagInterface, \IteratorAggregate, \Counta
     /**
      * Constructor.
      *
-     * @param string $storageKey The key used to store flashes in the session.
+     * @param string $storageKey The key used to store attributes in the session.
      */
     public function __construct($storageKey = '_sf2_attributes')
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
index a232c25b20c6..6a0c16d2d2d6 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
@@ -1013,6 +1013,14 @@ public function testGetPreferredLanguage()
         $request = new Request();
         $request->headers->set('Accept-language', 'zh, en-us; q=0.8, en; q=0.6');
         $this->assertEquals('en', $request->getPreferredLanguage(array('fr', 'en')));
+
+        $request = new Request();
+        $request->headers->set('Accept-language', 'zh, en-us; q=0.8');
+        $this->assertEquals('en', $request->getPreferredLanguage(array('fr', 'en')));
+
+        $request = new Request();
+        $request->headers->set('Accept-language', 'zh, en-us; q=0.8, fr-fr; q=0.6, fr; q=0.5');
+        $this->assertEquals('en', $request->getPreferredLanguage(array('fr', 'en')));
     }
 
     public function testIsXmlHttpRequest()
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
index 3cd17b12cfcb..9475431816e7 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
@@ -25,10 +25,24 @@
 class ConfigDataCollector extends DataCollector
 {
     private $kernel;
+    private $name;
+    private $version;
 
     /**
      * Constructor.
      *
+     * @param string $name    The name of the application using the web profiler
+     * @param string $version The version of the application using the web profiler
+     */
+    public function __construct($name = null, $version = null)
+    {
+        $this->name = $name;
+        $this->version = $version;
+    }
+
+    /**
+     * Sets the Kernel associated with this Request.
+     *
      * @param KernelInterface $kernel A KernelInterface instance
      */
     public function setKernel(KernelInterface $kernel = null)
@@ -42,6 +56,8 @@ public function setKernel(KernelInterface $kernel = null)
     public function collect(Request $request, Response $response, \Exception $exception = null)
     {
         $this->data = array(
+            'app_name'         => $this->name,
+            'app_version'      => $this->version,
             'token'            => $response->headers->get('X-Debug-Token'),
             'symfony_version'  => Kernel::VERSION,
             'name'             => isset($this->kernel) ? $this->kernel->getName() : 'n/a',
@@ -64,6 +80,16 @@ public function collect(Request $request, Response $response, \Exception $except
         }
     }
 
+    public function getApplicationName()
+    {
+        return $this->data['app_name'];
+    }
+
+    public function getApplicationVersion()
+    {
+        return $this->data['app_version'];
+    }
+
     /**
      * Gets the token.
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
index fe77e47451fa..365bcb8c0318 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
@@ -132,6 +132,10 @@ public function dispatch($eventName, Event $event = null)
 
         $this->firstCalledEvent[$eventName] = $this->stopwatch->start($eventName.'.loading', 'event_listener_loading');
 
+        if (!$this->dispatcher->hasListeners($eventName)) {
+            $this->firstCalledEvent[$eventName]->stop();
+        }
+
         $this->dispatcher->dispatch($eventName, $event);
 
         // reset the id as another event might have been dispatched during the dispatching of this event
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php
index 18f7b9899350..b4f3f9c1eef4 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php
@@ -147,9 +147,9 @@ public static function getSubscribedEvents()
     // to be removed in 2.3
     public function fixOptions(array $options)
     {
-        // support for the standalone option is @deprecated in 2.2 and replaced with the renderer option
+        // support for the standalone option is @deprecated in 2.2 and replaced with the strategy option
         if (isset($options['standalone'])) {
-            trigger_error('The "standalone" option is deprecated in version 2.2 and replaced with the "renderer" option.', E_USER_DEPRECATED);
+            trigger_error('The "standalone" option is deprecated in version 2.2 and replaced with the "strategy" option.', E_USER_DEPRECATED);
 
             // support for the true value is @deprecated in 2.2, will be removed in 2.3
             if (true === $options['standalone']) {
@@ -166,7 +166,7 @@ public function fixOptions(array $options)
                 $options['standalone'] = 'hinclude';
             }
 
-            $options['renderer'] = $options['standalone'];
+            $options['strategy'] = $options['standalone'];
             unset($options['standalone']);
         }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php
index 38880b32d3d2..928d395f0df4 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php
@@ -89,7 +89,7 @@ protected function createSubRequest($uri, Request $request)
         // the sub-request is internal
         $server['REMOTE_ADDR'] = '127.0.0.1';
 
-        $subRequest = Request::create($uri, 'get', array(), $cookies, array(), $server);
+        $subRequest = $request::create($uri, 'get', array(), $cookies, array(), $server);
         if ($session = $request->getSession()) {
             $subRequest->setSession($session);
         }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
index 7173f44ee3c7..452b9dfe401b 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
@@ -250,7 +250,7 @@ public function invalidate(Request $request)
         // As per the RFC, invalidate Location and Content-Location URLs if present
         foreach (array('Location', 'Content-Location') as $header) {
             if ($uri = $request->headers->get($header)) {
-                $subRequest = Request::create($uri, 'get', array(), array(), array(), $request->server->all());
+                $subRequest = $request::create($uri, 'get', array(), array(), array(), $request->server->all());
 
                 $this->invalidate($subRequest);
             }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
index 315f008513c8..18950c190b7a 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
@@ -62,11 +62,11 @@ abstract class Kernel implements KernelInterface, TerminableInterface
     protected $classes;
     protected $errorReportingLevel;
 
-    const VERSION         = '2.2.0';
-    const VERSION_ID      = '20100';
+    const VERSION         = '2.2.1';
+    const VERSION_ID      = '20101';
     const MAJOR_VERSION   = '2';
     const MINOR_VERSION   = '2';
-    const RELEASE_VERSION = '0';
+    const RELEASE_VERSION = '1';
     const EXTRA_VERSION   = '';
 
     /**
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
index 2a54989ea1b8..dc337789ad16 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
@@ -225,7 +225,7 @@ protected function readLineFromFile($file)
             return null;
         }
 
-        while(true) {
+        while (true) {
             $chunkSize = min($position, 1024);
             $position -= $chunkSize;
             fseek($file, $position);
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php
index 1ca3e973034f..606c60de27a2 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php
@@ -204,7 +204,7 @@ public function collect(Request $request, Response $response, \Exception $except
             return;
         }
 
-        $profile = new Profile(uniqid());
+        $profile = new Profile(sha1(uniqid(mt_rand(), true)));
         $profile->setTime(time());
         $profile->setUrl($request->getUri());
         $profile->setIp($request->getClientIp());
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php
index 9671381a40da..e0a5b0ad5934 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php
@@ -76,9 +76,9 @@ public function testFixOptions($expected, $options)
     public function getFixOptionsData()
     {
         return array(
-            array(array('renderer' => 'esi'), array('standalone' => true)),
-            array(array('renderer' => 'esi'), array('standalone' => 'esi')),
-            array(array('renderer' => 'hinclude'), array('standalone' => 'js')),
+            array(array('strategy' => 'esi'), array('standalone' => true)),
+            array(array('strategy' => 'esi'), array('standalone' => 'esi')),
+            array(array('strategy' => 'hinclude'), array('standalone' => 'js')),
         );
     }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
index 12d301f387af..6a3e5653a781 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
@@ -66,11 +66,17 @@ public function testRemovesEntriesForKeyWithPurge()
     {
         $request = Request::create('/foo');
         $this->store->write($request, new Response('foo'));
-        $this->assertNotEmpty($this->getStoreMetadata($request));
+
+        $metadata = $this->getStoreMetadata($request);
+        $this->assertNotEmpty($metadata);
 
         $this->assertTrue($this->store->purge('/foo'));
         $this->assertEmpty($this->getStoreMetadata($request));
 
+        // cached content should be kept after purging
+        $path = $this->store->getPath($metadata[0][1]['x-content-digest'][0]);
+        $this->assertTrue(is_file($path));
+
         $this->assertFalse($this->store->purge('/bar'));
     }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
index 4b8cf07a6640..122479b922dd 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
@@ -238,4 +238,17 @@ private function storeData($key, $value)
 
         return true;
     }
+    
+    public function select($dbnum)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+        
+        if (0 > $dbnum) {
+            return false;
+        }
+        
+        return true;   
+    }
 }
diff --git a/core/vendor/kriswallsmith/assetic/.gitignore b/core/vendor/symfony/process/Symfony/Component/Process/.gitignore
similarity index 70%
rename from core/vendor/kriswallsmith/assetic/.gitignore
rename to core/vendor/symfony/process/Symfony/Component/Process/.gitignore
index 192c9c644d60..44de97a36a6d 100644
--- a/core/vendor/kriswallsmith/assetic/.gitignore
+++ b/core/vendor/symfony/process/Symfony/Component/Process/.gitignore
@@ -1,4 +1,4 @@
-phpunit.xml
 vendor/
-composer.phar
 composer.lock
+phpunit.xml
+
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/CHANGELOG.md b/core/vendor/symfony/process/Symfony/Component/Process/CHANGELOG.md
index 8c73d54f6959..7fa5b72d5027 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/CHANGELOG.md
+++ b/core/vendor/symfony/process/Symfony/Component/Process/CHANGELOG.md
@@ -1,6 +1,13 @@
 CHANGELOG
 =========
 
+2.2.0
+-----
+
+ * added ProcessBuilder::setArguments() to reset the arguments on a builder
+ * added a way to retrieve the standard and error output incrementally
+ * added Process:restart()
+
 2.1.0
 -----
 
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Exception/ExceptionInterface.php b/core/vendor/symfony/process/Symfony/Component/Process/Exception/ExceptionInterface.php
old mode 100755
new mode 100644
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Exception/InvalidArgumentException.php b/core/vendor/symfony/process/Symfony/Component/Process/Exception/InvalidArgumentException.php
new file mode 100644
index 000000000000..926ee2118b03
--- /dev/null
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Exception/InvalidArgumentException.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Process\Exception;
+
+/**
+ * InvalidArgumentException for the Process Component.
+ *
+ * @author Romain Neutron <imprec@gmail.com>
+ */
+class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
+{
+}
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Exception/LogicException.php b/core/vendor/symfony/process/Symfony/Component/Process/Exception/LogicException.php
new file mode 100644
index 000000000000..be3d490dde8c
--- /dev/null
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Exception/LogicException.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Process\Exception;
+
+/**
+ * LogicException for the Process Component.
+ *
+ * @author Romain Neutron <imprec@gmail.com>
+ */
+class LogicException extends \LogicException implements ExceptionInterface
+{
+}
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Exception/ProcessFailedException.php b/core/vendor/symfony/process/Symfony/Component/Process/Exception/ProcessFailedException.php
old mode 100755
new mode 100644
index f778a362f98c..936cbc619cd7
--- a/core/vendor/symfony/process/Symfony/Component/Process/Exception/ProcessFailedException.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Exception/ProcessFailedException.php
@@ -25,7 +25,7 @@ class ProcessFailedException extends RuntimeException
     public function __construct(Process $process)
     {
         if ($process->isSuccessful()) {
-            throw new \InvalidArgumentException('Expected a failed process, but the given process was successful.');
+            throw new InvalidArgumentException('Expected a failed process, but the given process was successful.');
         }
 
         parent::__construct(
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Exception/RuntimeException.php b/core/vendor/symfony/process/Symfony/Component/Process/Exception/RuntimeException.php
old mode 100755
new mode 100644
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/PhpProcess.php b/core/vendor/symfony/process/Symfony/Component/Process/PhpProcess.php
index 7a9fd0864be5..d146057e0881 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/PhpProcess.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/PhpProcess.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\Process;
 
+use Symfony\Component\Process\Exception\RuntimeException;
+
 /**
  * PhpProcess runs a PHP script in an independent process.
  *
@@ -61,7 +63,7 @@ public function start($callback = null)
     {
         if (null === $this->getCommandLine()) {
             if (false === $php = $this->executableFinder->find()) {
-                throw new \RuntimeException('Unable to find the PHP executable.');
+                throw new RuntimeException('Unable to find the PHP executable.');
             }
             $this->setCommandLine($php);
         }
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Process.php b/core/vendor/symfony/process/Symfony/Component/Process/Process.php
index 668e55b70711..e60373d57b4e 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Process.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Process.php
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Process;
 
+use Symfony\Component\Process\Exception\InvalidArgumentException;
 use Symfony\Component\Process\Exception\RuntimeException;
 
 /**
@@ -50,6 +51,8 @@ class Process
     private $pipes;
     private $process;
     private $status = self::STATUS_READY;
+    private $incrementalOutputOffset;
+    private $incrementalErrorOutputOffset;
 
     private $fileHandles;
     private $readBytes;
@@ -116,20 +119,25 @@ class Process
      * @param integer $timeout     The timeout in seconds
      * @param array   $options     An array of options for proc_open
      *
-     * @throws \RuntimeException When proc_open is not installed
+     * @throws RuntimeException When proc_open is not installed
      *
      * @api
      */
     public function __construct($commandline, $cwd = null, array $env = null, $stdin = null, $timeout = 60, array $options = array())
     {
         if (!function_exists('proc_open')) {
-            throw new \RuntimeException('The Process class relies on proc_open, which is not available on your PHP installation.');
+            throw new RuntimeException('The Process class relies on proc_open, which is not available on your PHP installation.');
         }
 
         $this->commandline = $commandline;
         $this->cwd = $cwd;
+
         // on windows, if the cwd changed via chdir(), proc_open defaults to the dir where php was started
-        if (null === $this->cwd && defined('PHP_WINDOWS_VERSION_BUILD')) {
+        // on gnu/linux, PHP builds with --enable-maintainer-zts are also affected
+        // @see : https://bugs.php.net/bug.php?id=51800
+        // @see : https://bugs.php.net/bug.php?id=50524
+
+        if (null === $this->cwd && (defined('ZEND_THREAD_SAFE') || defined('PHP_WINDOWS_VERSION_BUILD'))) {
             $this->cwd = getcwd();
         }
         if (null !== $env) {
@@ -153,6 +161,20 @@ public function __destruct()
         $this->stop();
     }
 
+    public function __clone()
+    {
+        $this->exitcode = null;
+        $this->fallbackExitcode = null;
+        $this->processInformation = null;
+        $this->stdout = null;
+        $this->stderr = null;
+        $this->pipes = null;
+        $this->process = null;
+        $this->status = self::STATUS_READY;
+        $this->fileHandles = null;
+        $this->readBytes = null;
+    }
+
     /**
      * Runs the process.
      *
@@ -168,7 +190,7 @@ public function __destruct()
      *
      * @return integer The exit status code
      *
-     * @throws \RuntimeException When process can't be launch or is stopped
+     * @throws RuntimeException When process can't be launch or is stopped
      *
      * @api
      */
@@ -197,17 +219,19 @@ public function run($callback = null)
      * @param callback|null $callback A PHP callback to run whenever there is some
      *                                output available on STDOUT or STDERR
      *
-     * @throws \RuntimeException When process can't be launch or is stopped
-     * @throws \RuntimeException When process is already running
+     * @throws RuntimeException When process can't be launch or is stopped
+     * @throws RuntimeException When process is already running
      */
     public function start($callback = null)
     {
         if ($this->isRunning()) {
-            throw new \RuntimeException('Process is already running');
+            throw new RuntimeException('Process is already running');
         }
 
         $this->stdout = '';
         $this->stderr = '';
+        $this->incrementalOutputOffset = 0;
+        $this->incrementalErrorOutputOffset = 0;
         $callback = $this->buildCallback($callback);
 
         //Fix for PHP bug #51800: reading from STDOUT pipe hangs forever on Windows if the output is too big.
@@ -251,7 +275,7 @@ public function start($callback = null)
         $this->process = proc_open($commandline, $descriptors, $this->pipes, $this->cwd, $this->env, $this->options);
 
         if (!is_resource($this->process)) {
-            throw new \RuntimeException('Unable to launch a new process.');
+            throw new RuntimeException('Unable to launch a new process.');
         }
         $this->status = self::STATUS_STARTED;
 
@@ -288,7 +312,7 @@ public function start($callback = null)
             if ($n === 0) {
                 proc_terminate($this->process);
 
-                throw new \RuntimeException('The process timed out.');
+                throw new RuntimeException('The process timed out.');
             }
 
             if ($w) {
@@ -318,6 +342,33 @@ public function start($callback = null)
         $this->updateStatus();
     }
 
+    /**
+     * Restarts the process.
+     *
+     * Be warned that the process is cloned before being started.
+     *
+     * @param callable $callback A PHP callback to run whenever there is some
+     *                           output available on STDOUT or STDERR
+     *
+     * @return Process The new process
+     *
+     * @throws \RuntimeException When process can't be launch or is stopped
+     * @throws \RuntimeException When process is already running
+     *
+     * @see start()
+     */
+    public function restart($callback = null)
+    {
+        if ($this->isRunning()) {
+            throw new \RuntimeException('Process is already running');
+        }
+
+        $process = clone $this;
+        $process->start($callback);
+
+        return $process;
+    }
+
     /**
      * Waits for the process to terminate.
      *
@@ -359,7 +410,7 @@ public function wait($callback = null)
                 if (0 === $n) {
                     proc_terminate($this->process);
 
-                    throw new \RuntimeException('The process timed out.');
+                    throw new RuntimeException('The process timed out.');
                 }
 
                 foreach ($r as $pipe) {
@@ -383,7 +434,7 @@ public function wait($callback = null)
         }
         $this->updateStatus();
         if ($this->processInformation['signaled']) {
-            throw new \RuntimeException(sprintf('The process stopped because of a "%s" signal.', $this->processInformation['stopsig']));
+            throw new RuntimeException(sprintf('The process stopped because of a "%s" signal.', $this->processInformation['stopsig']));
         }
 
         $time = 0;
@@ -395,7 +446,7 @@ public function wait($callback = null)
         $exitcode = proc_close($this->process);
 
         if ($this->processInformation['signaled']) {
-            throw new \RuntimeException(sprintf('The process stopped because of a "%s" signal.', $this->processInformation['stopsig']));
+            throw new RuntimeException(sprintf('The process stopped because of a "%s" signal.', $this->processInformation['stopsig']));
         }
 
         $this->exitcode = $this->processInformation['running'] ? $exitcode : $this->processInformation['exitcode'];
@@ -421,6 +472,24 @@ public function getOutput()
         return $this->stdout;
     }
 
+    /**
+     * Returns the output incrementally.
+     *
+     * In comparison with the getOutput method which always return the whole
+     * output, this one returns the new output since the last call.
+     *
+     * @return string The process output since the last call
+     */
+    public function getIncrementalOutput()
+    {
+        $data = $this->getOutput();
+
+        $latest = substr($data, $this->incrementalOutputOffset);
+        $this->incrementalOutputOffset = strlen($data);
+
+        return $latest;
+    }
+
     /**
      * Returns the current error output of the process (STDERR).
      *
@@ -435,6 +504,25 @@ public function getErrorOutput()
         return $this->stderr;
     }
 
+    /**
+     * Returns the errorOutput incrementally.
+     *
+     * In comparison with the getErrorOutput method which always return the
+     * whole error output, this one returns the new error output since the last
+     * call.
+     *
+     * @return string The process error output since the last call
+     */
+    public function getIncrementalErrorOutput()
+    {
+        $data = $this->getErrorOutput();
+
+        $latest = substr($data, $this->incrementalErrorOutputOffset);
+        $this->incrementalErrorOutputOffset = strlen($data);
+
+        return $latest;
+    }
+
     /**
      * Returns the exit code returned by the process.
      *
@@ -577,14 +665,52 @@ public function isRunning()
         return $this->processInformation['running'];
     }
 
+    /**
+     * Checks if the process has been started with no regard to the current state.
+     *
+     * @return Boolean true if status is ready, false otherwise
+     */
+    public function isStarted()
+    {
+        return $this->status != self::STATUS_READY;
+    }
+
+    /**
+     * Checks if the process is terminated.
+     *
+     * @return Boolean true if process is terminated, false otherwise
+     */
+    public function isTerminated()
+    {
+        $this->updateStatus();
+
+        return $this->status == self::STATUS_TERMINATED;
+    }
+
+    /**
+     * Gets the process status.
+     *
+     * The status is one of: ready, started, terminated.
+     *
+     * @return string The current process status
+     */
+    public function getStatus()
+    {
+        $this->updateStatus();
+
+        return $this->status;
+    }
+
     /**
      * Stops the process.
      *
      * @param integer|float $timeout The timeout in seconds
      *
      * @return integer The exit-code of the process
+     *
+     * @throws RuntimeException if the process got signaled
      */
-    public function stop($timeout=10)
+    public function stop($timeout = 10)
     {
         $timeoutMicro = (int) $timeout*10E6;
         if ($this->isRunning()) {
@@ -649,10 +775,14 @@ public function getCommandLine()
      * Sets the command line to be executed.
      *
      * @param string $commandline The command to execute
+     *
+     * @return self The current Process instance
      */
     public function setCommandLine($commandline)
     {
         $this->commandline = $commandline;
+
+        return $this;
     }
 
     /**
@@ -672,23 +802,27 @@ public function getTimeout()
      *
      * @param integer|null $timeout The timeout in seconds
      *
-     * @throws \InvalidArgumentException if the timeout is negative
+     * @return self The current Process instance
+     *
+     * @throws InvalidArgumentException if the timeout is negative
      */
     public function setTimeout($timeout)
     {
         if (null === $timeout) {
             $this->timeout = null;
 
-            return;
+            return $this;
         }
 
         $timeout = (integer) $timeout;
 
         if ($timeout < 0) {
-            throw new \InvalidArgumentException('The timeout value must be a valid positive integer.');
+            throw new InvalidArgumentException('The timeout value must be a valid positive integer.');
         }
 
         $this->timeout = $timeout;
+
+        return $this;
     }
 
     /**
@@ -712,10 +846,14 @@ public function getWorkingDirectory()
      * Sets the current working directory.
      *
      * @param string $cwd The new working directory
+     *
+     * @return self The current Process instance
      */
     public function setWorkingDirectory($cwd)
     {
         $this->cwd = $cwd;
+
+        return $this;
     }
 
     /**
@@ -732,10 +870,14 @@ public function getEnv()
      * Sets the environment variables.
      *
      * @param array $env The new environment variables
+     *
+     * @return self The current Process instance
      */
     public function setEnv(array $env)
     {
         $this->env = $env;
+
+        return $this;
     }
 
     /**
@@ -752,10 +894,14 @@ public function getStdin()
      * Sets the contents of STDIN.
      *
      * @param string $stdin The new contents
+     *
+     * @return self The current Process instance
      */
     public function setStdin($stdin)
     {
         $this->stdin = $stdin;
+
+        return $this;
     }
 
     /**
@@ -772,10 +918,14 @@ public function getOptions()
      * Sets the options for proc_open.
      *
      * @param array $options The new options
+     *
+     * @return self The current Process instance
      */
     public function setOptions(array $options)
     {
         $this->options = $options;
+
+        return $this;
     }
 
     /**
@@ -794,10 +944,14 @@ public function getEnhanceWindowsCompatibility()
      * Sets whether or not Windows compatibility is enabled
      *
      * @param Boolean $enhance
+     *
+     * @return self The current Process instance
      */
     public function setEnhanceWindowsCompatibility($enhance)
     {
         $this->enhanceWindowsCompatibility = (Boolean) $enhance;
+
+        return $this;
     }
 
     /**
@@ -818,10 +972,14 @@ public function getEnhanceSigchildCompatibility()
      * the --enable-sigchild option
      *
      * @param Boolean $enhance
+     *
+     * @return self The current Process instance
      */
     public function setEnhanceSigchildCompatibility($enhance)
     {
         $this->enhanceSigchildCompatibility = (Boolean) $enhance;
+
+        return $this;
     }
 
     /**
@@ -915,7 +1073,7 @@ protected function isSigchildEnabled()
     /**
      * Handles the windows file handles fallbacks
      *
-     * @param mixed $callback A valid PHP callback
+     * @param callable $callback A valid PHP callback
      * @param Boolean $closeEmptyHandles if true, handles that are empty will be assumed closed
      */
     private function processFileHandles($callback, $closeEmptyHandles = false)
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/ProcessBuilder.php b/core/vendor/symfony/process/Symfony/Component/Process/ProcessBuilder.php
index 2ffb3af5ffb9..1a95bd0df492 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/ProcessBuilder.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/ProcessBuilder.php
@@ -11,6 +11,9 @@
 
 namespace Symfony\Component\Process;
 
+use Symfony\Component\Process\Exception\InvalidArgumentException;
+use Symfony\Component\Process\Exception\LogicException;
+
 /**
  * Process builder.
  *
@@ -45,6 +48,8 @@ public static function create(array $arguments = array())
      * Adds an unescaped argument to the command string.
      *
      * @param string $argument A command argument
+     *
+     * @return ProcessBuilder
      */
     public function add($argument)
     {
@@ -53,6 +58,18 @@ public function add($argument)
         return $this;
     }
 
+    /**
+     * @param array $arguments
+     *
+     * @return ProcessBuilder
+     */
+    public function setArguments(array $arguments)
+    {
+        $this->arguments = $arguments;
+
+        return $this;
+    }
+
     public function setWorkingDirectory($cwd)
     {
         $this->cwd = $cwd;
@@ -87,6 +104,10 @@ public function setInput($stdin)
      * To disable the timeout, set this value to null.
      *
      * @param integer|null
+     *
+     * @return ProcessBuilder
+     *
+     * @throws InvalidArgumentException
      */
     public function setTimeout($timeout)
     {
@@ -99,7 +120,7 @@ public function setTimeout($timeout)
         $timeout = (integer) $timeout;
 
         if ($timeout < 0) {
-            throw new \InvalidArgumentException('The timeout value must be a valid positive integer.');
+            throw new InvalidArgumentException('The timeout value must be a valid positive integer.');
         }
 
         $this->timeout = $timeout;
@@ -117,7 +138,7 @@ public function setOption($name, $value)
     public function getProcess()
     {
         if (!count($this->arguments)) {
-            throw new \LogicException('You must add() command arguments before calling getProcess().');
+            throw new LogicException('You must add() command arguments before calling getProcess().');
         }
 
         $options = $this->options;
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/README.md b/core/vendor/symfony/process/Symfony/Component/Process/README.md
index 2a8a4f764a3d..7b9f30757bea 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/README.md
+++ b/core/vendor/symfony/process/Symfony/Component/Process/README.md
@@ -42,4 +42,6 @@ Resources
 
 You can run the unit tests with the following command:
 
-    phpunit
+    $ cd path/to/Symfony/Component/XXX/
+    $ composer.phar install --dev
+    $ phpunit
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/AbstractProcessTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/AbstractProcessTest.php
index 51d51f40b87b..64798e34c8f4 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/AbstractProcessTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/AbstractProcessTest.php
@@ -19,7 +19,7 @@
 abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
      */
     public function testNegativeTimeoutFromConstructor()
     {
@@ -27,7 +27,7 @@ public function testNegativeTimeoutFromConstructor()
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
      */
     public function testNegativeTimeoutFromSetter()
     {
@@ -111,6 +111,44 @@ public function testCallbackIsExecutedForOutput()
         $this->assertTrue($called, 'The callback should be executed with the output');
     }
 
+    public function testGetErrorOutput()
+    {
+        $p = new Process(sprintf('php -r %s', escapeshellarg('ini_set(\'display_errors\',\'on\'); $n = 0; while ($n < 3) { echo $a; $n++; }')));
+
+        $p->run();
+        $this->assertEquals(3, preg_match_all('/PHP Notice/', $p->getErrorOutput(), $matches));
+    }
+
+    public function testGetIncrementalErrorOutput()
+    {
+        $p = new Process(sprintf('php -r %s', escapeshellarg('ini_set(\'display_errors\',\'on\'); usleep(50000); $n = 0; while ($n < 3) { echo $a; $n++; }')));
+
+        $p->start();
+        while ($p->isRunning()) {
+            $this->assertLessThanOrEqual(1, preg_match_all('/PHP Notice/', $p->getIncrementalOutput(), $matches));
+            usleep(20000);
+        }
+    }
+
+    public function testGetOutput()
+    {
+        $p = new Process(sprintf('php -r %s', escapeshellarg('$n=0;while ($n<3) {echo \' foo \';$n++;}')));
+
+        $p->run();
+        $this->assertEquals(3, preg_match_all('/foo/', $p->getOutput(), $matches));
+    }
+
+    public function testGetIncrementalOutput()
+    {
+        $p = new Process(sprintf('php -r %s', escapeshellarg('$n=0;while ($n<3) { echo \' foo \'; usleep(50000); $n++; }')));
+
+        $p->start();
+        while ($p->isRunning()) {
+            $this->assertLessThanOrEqual(1, preg_match_all('/foo/', $p->getIncrementalOutput(), $matches));
+            usleep(20000);
+        }
+    }
+
     public function testExitCodeCommandFailed()
     {
         if (defined('PHP_WINDOWS_VERSION_BUILD')) {
@@ -158,14 +196,23 @@ public function testGetExitCode()
         $this->assertEquals(0, $process->getExitCode());
     }
 
-    public function testIsRunning()
+    public function testStatus()
     {
         $process = $this->getProcess('php -r "sleep(1);"');
         $this->assertFalse($process->isRunning());
+        $this->assertFalse($process->isStarted());
+        $this->assertFalse($process->isTerminated());
+        $this->assertSame(Process::STATUS_READY, $process->getStatus());
         $process->start();
         $this->assertTrue($process->isRunning());
+        $this->assertTrue($process->isStarted());
+        $this->assertFalse($process->isTerminated());
+        $this->assertSame(Process::STATUS_STARTED, $process->getStatus());
         $process->wait();
         $this->assertFalse($process->isRunning());
+        $this->assertTrue($process->isStarted());
+        $this->assertTrue($process->isTerminated());
+        $this->assertSame(Process::STATUS_TERMINATED, $process->getStatus());
     }
 
     public function testStop()
@@ -243,6 +290,24 @@ public function testProcessWithTermSignal()
         $this->assertEquals($termSignal, $process->getTermSignal());
     }
 
+    public function testRestart()
+    {
+        $process1 = $this->getProcess('php -r "echo getmypid();"');
+        $process1->run();
+        $process2 = $process1->restart();
+
+        usleep(300000); // wait for output
+
+        // Ensure that both processed finished and the output is numeric
+        $this->assertFalse($process1->isRunning());
+        $this->assertFalse($process2->isRunning());
+        $this->assertTrue(is_numeric($process1->getOutput()));
+        $this->assertTrue(is_numeric($process2->getOutput()));
+
+        // Ensure that restart returned a new process by check that the output is different
+        $this->assertNotEquals($process1->getOutput(), $process2->getOutput());
+    }
+
     public function testPhpDeadlock()
     {
         $this->markTestSkipped('Can course php to hang');
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessBuilderTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessBuilderTest.php
index 9ca45a80a790..38e14910907e 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessBuilderTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessBuilderTest.php
@@ -85,7 +85,7 @@ public function shouldNotReplaceExplicitlySetVars()
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
      */
     public function testNegativeTimeoutFromSetter()
     {
@@ -105,4 +105,14 @@ public function testNullTimeout()
 
         $this->assertNull($p->getValue($pb));
     }
+
+    public function testShouldSetArguments()
+    {
+        $pb = new ProcessBuilder(array('initial'));
+        $pb->setArguments(array('second'));
+
+        $proc = $pb->getProcess();
+
+        $this->assertContains("second", $proc->getCommandLine());
+    }
 }
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessFailedExceptionTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessFailedExceptionTest.php
index 356c7debaa02..9bc2fdf30fa5 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessFailedExceptionTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessFailedExceptionTest.php
@@ -11,8 +11,7 @@
 
 namespace Symfony\Component\Process\Tests;
 
-use Symfony\Component\Process\Process,
-    Symfony\Component\Process\Exception\ProcessFailedException;
+use Symfony\Component\Process\Exception\ProcessFailedException;
 
 /**
  * @author Sebastian Marek <proofek@gmail.com>
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildDisabledProcessTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildDisabledProcessTest.php
index 67fc0025bdd2..1e4dc1d0a2f6 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildDisabledProcessTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildDisabledProcessTest.php
@@ -14,7 +14,7 @@
 class SigchildDisabledProcessTest extends AbstractProcessTest
 {
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testGetExitCode()
     {
@@ -22,7 +22,7 @@ public function testGetExitCode()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testExitCodeCommandFailed()
     {
@@ -30,7 +30,7 @@ public function testExitCodeCommandFailed()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testProcessIsSignaledIfStopped()
     {
@@ -38,7 +38,7 @@ public function testProcessIsSignaledIfStopped()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testProcessWithTermSignal()
     {
@@ -46,7 +46,7 @@ public function testProcessWithTermSignal()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testProcessIsNotSignaled()
     {
@@ -54,7 +54,7 @@ public function testProcessIsNotSignaled()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testProcessWithoutTermSignal()
     {
@@ -62,7 +62,7 @@ public function testProcessWithoutTermSignal()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testExitCodeText()
     {
@@ -73,7 +73,7 @@ public function testExitCodeText()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testIsSuccessful()
     {
@@ -81,7 +81,7 @@ public function testIsSuccessful()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testIsNotSuccessful()
     {
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildEnabledProcessTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildEnabledProcessTest.php
index fb9b6f8cc8ed..5c664e24233f 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildEnabledProcessTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildEnabledProcessTest.php
@@ -14,7 +14,7 @@
 class SigchildEnabledProcessTest extends AbstractProcessTest
 {
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testProcessIsSignaledIfStopped()
     {
@@ -22,7 +22,7 @@ public function testProcessIsSignaledIfStopped()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testProcessWithTermSignal()
     {
@@ -30,7 +30,7 @@ public function testProcessWithTermSignal()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testProcessIsNotSignaled()
     {
@@ -38,7 +38,7 @@ public function testProcessIsNotSignaled()
     }
 
     /**
-     * @expectedException Symfony\Component\Process\Exception\RuntimeException
+     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
      */
     public function testProcessWithoutTermSignal()
     {
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/bootstrap.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/bootstrap.php
deleted file mode 100644
index 11054b98928f..000000000000
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/bootstrap.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-spl_autoload_register(function ($class) {
-    if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\Process')) {
-        if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\Process')).'.php')) {
-            require_once $file;
-        }
-    }
-});
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/composer.json b/core/vendor/symfony/process/Symfony/Component/Process/composer.json
index a20a4517bdfa..1681ef6c1f97 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/composer.json
+++ b/core/vendor/symfony/process/Symfony/Component/Process/composer.json
@@ -19,8 +19,13 @@
         "php": ">=5.3.3"
     },
     "autoload": {
-        "psr-0": { "Symfony\\Component\\Process": "" }
+        "psr-0": { "Symfony\\Component\\Process\\": "" }
     },
     "target-dir": "Symfony/Component/Process",
-    "minimum-stability": "dev"
+    "minimum-stability": "dev",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "2.2-dev"
+        }
+    }
 }
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/phpunit.xml.dist b/core/vendor/symfony/process/Symfony/Component/Process/phpunit.xml.dist
index c120a97e9118..9d5830f9e24e 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/phpunit.xml.dist
+++ b/core/vendor/symfony/process/Symfony/Component/Process/phpunit.xml.dist
@@ -9,7 +9,7 @@
          processIsolation="false"
          stopOnFailure="false"
          syntaxCheck="false"
-         bootstrap="Tests/bootstrap.php"
+         bootstrap="vendor/autoload.php"
 >
     <testsuites>
         <testsuite name="Symfony Process Component Test Suite">
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
index 2a6328ad3f8f..9dac1c1f4cfa 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
@@ -159,7 +159,7 @@ protected function doGenerate($variables, $defaults, $requirements, $tokens, $pa
         $optional = true;
         foreach ($tokens as $token) {
             if ('variable' === $token[0]) {
-                if (!$optional || !array_key_exists($token[3], $defaults) || (string) $mergedParams[$token[3]] !== (string) $defaults[$token[3]]) {
+                if (!$optional || !array_key_exists($token[3], $defaults) || null !== $mergedParams[$token[3]] && (string) $mergedParams[$token[3]] !== (string) $defaults[$token[3]]) {
                     // check requirement
                     if (null !== $this->strictRequirements && !preg_match('#^'.$token[2].'$#', $mergedParams[$token[3]])) {
                         $message = sprintf('Parameter "%s" for route "%s" must match "%s" ("%s" given) to generate a corresponding URL.', $token[3], $name, $token[2], $mergedParams[$token[3]]);
@@ -261,7 +261,7 @@ protected function doGenerate($variables, $defaults, $requirements, $tokens, $pa
         }
 
         // add a query string if needed
-        $extra = array_diff_key($parameters, $variables);
+        $extra = array_diff_key($parameters, $variables, $defaults);
         if ($extra && $query = http_build_query($extra, '', '&')) {
             $url .= '?'.$query;
         }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
index a50da26648c7..3919e41ac6d2 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
@@ -126,8 +126,8 @@ protected function parseRoute(RouteCollection $collection, \DOMElement $node, $p
             $node->removeAttribute('pattern');
         }
 
-        $schemes = array_filter(explode(' ', $node->getAttribute('schemes')));
-        $methods = array_filter(explode(' ', $node->getAttribute('methods')));
+        $schemes = preg_split('/[\s,\|]++/', $node->getAttribute('schemes'), -1, PREG_SPLIT_NO_EMPTY);
+        $methods = preg_split('/[\s,\|]++/', $node->getAttribute('methods'), -1, PREG_SPLIT_NO_EMPTY);
 
         list($defaults, $requirements, $options) = $this->parseConfigs($node, $path);
 
@@ -154,8 +154,8 @@ protected function parseImport(RouteCollection $collection, \DOMElement $node, $
         $type = $node->getAttribute('type');
         $prefix = $node->getAttribute('prefix');
         $host = $node->hasAttribute('host') ? $node->getAttribute('host') : null;
-        $schemes = $node->hasAttribute('schemes') ? array_filter(explode(' ', $node->getAttribute('schemes'))) : null;
-        $methods = $node->hasAttribute('methods') ? array_filter(explode(' ', $node->getAttribute('methods'))) : null;
+        $schemes = $node->hasAttribute('schemes') ? preg_split('/[\s,\|]++/', $node->getAttribute('schemes'), -1, PREG_SPLIT_NO_EMPTY) : null;
+        $methods = $node->hasAttribute('methods') ? preg_split('/[\s,\|]++/', $node->getAttribute('methods'), -1, PREG_SPLIT_NO_EMPTY) : null;
 
         list($defaults, $requirements, $options) = $this->parseConfigs($node, $path);
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
index bbd918c3f516..ecd852be8aad 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
@@ -17,16 +17,6 @@
 
   <xsd:element name="routes" type="routes" />
 
-  <xsd:simpleType name="word">
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="([a-zA-Z]){3,}"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <xsd:simpleType name="stringlist">
-    <xsd:list itemType="word"/>
-  </xsd:simpleType>
-
   <xsd:complexType name="routes">
     <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:element name="import" type="import" />
@@ -49,8 +39,8 @@
     <xsd:attribute name="path" type="xsd:string" />
     <xsd:attribute name="pattern" type="xsd:string" />
     <xsd:attribute name="host" type="xsd:string" />
-    <xsd:attribute name="schemes" type="stringlist" />
-    <xsd:attribute name="methods" type="stringlist" />
+    <xsd:attribute name="schemes" type="xsd:string" />
+    <xsd:attribute name="methods" type="xsd:string" />
   </xsd:complexType>
 
   <xsd:complexType name="import">
@@ -60,8 +50,8 @@
     <xsd:attribute name="type" type="xsd:string" />
     <xsd:attribute name="prefix" type="xsd:string" />
     <xsd:attribute name="host" type="xsd:string" />
-    <xsd:attribute name="schemes" type="stringlist" />
-    <xsd:attribute name="methods" type="stringlist" />
+    <xsd:attribute name="schemes" type="xsd:string" />
+    <xsd:attribute name="methods" type="xsd:string" />
   </xsd:complexType>
 
   <xsd:complexType name="element">
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
index e53606da5f19..b60b7f3d2c49 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
@@ -65,6 +65,9 @@ public function __clone()
      */
     public function getParent()
     {
+        trigger_error('getParent() is deprecated since version 2.2 and will be removed in 2.3. There is no substitution ' .
+            'because RouteCollection is not tree structure anymore.', E_USER_DEPRECATED);
+
         return $this->parent;
     }
 
@@ -77,6 +80,9 @@ public function getParent()
      */
     public function getRoot()
     {
+        trigger_error('getRoot() is deprecated since version 2.2 and will be removed in 2.3. There is no substitution ' .
+            'because RouteCollection is not tree structure anymore.', E_USER_DEPRECATED);
+
         $parent = $this;
         while ($parent->getParent()) {
             $parent = $parent->getParent();
@@ -157,7 +163,10 @@ public function get($name)
     public function remove($name)
     {
         // just for BC
-        $root = $this->getRoot();
+        $root = $this;
+        while ($root->parent) {
+            $root = $root->parent;
+        }
 
         foreach ((array) $name as $n) {
             unset($root->routes[$n]);
@@ -184,6 +193,8 @@ public function addCollection(RouteCollection $collection)
         // this is to keep BC
         $numargs = func_num_args();
         if ($numargs > 1) {
+            trigger_error('addCollection() should only be used with a single parameter. The params $prefix, $defaults, $requirements and $options ' .
+                'are deprecated since version 2.2 and will be removed in 2.3. Use addPrefix() and addOptions() instead.', E_USER_DEPRECATED);
             $collection->addPrefix($this->prefix . func_get_arg(1));
             if ($numargs > 2) {
                 $collection->addDefaults(func_get_arg(2));
@@ -232,7 +243,13 @@ public function addPrefix($prefix, array $defaults = array(), array $requirement
         $this->prefix = '/' . $prefix . $this->prefix;
 
         // this is to keep BC
-        $options = func_num_args() > 3 ? func_get_arg(3) : array();
+        if (func_num_args() > 3) {
+            trigger_error('The fourth parameter ($options) of addPrefix() is deprecated since version 2.2 and will be removed in 2.3. ' .
+                'Use addOptions() instead.', E_USER_DEPRECATED);
+            $options = func_get_arg(3);
+        } else {
+            $options = array();
+        }
 
         foreach ($this->routes as $route) {
             $route->setPath('/' . $prefix . $route->getPath());
@@ -251,6 +268,9 @@ public function addPrefix($prefix, array $defaults = array(), array $requirement
      */
     public function getPrefix()
     {
+        trigger_error('getPrefix() is deprecated since version 2.2 and will be removed in 2.3. The method suggests that ' .
+            'all routes in the collection would have this prefix, which is not necessarily true.', E_USER_DEPRECATED);
+
         return $this->prefix;
     }
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php
index 25e4029f045f..7ced4b3af844 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php
@@ -147,7 +147,7 @@ private static function compilePattern(Route $route, $pattern, $isHost)
         }
 
         // find the first optional token
-        $firstOptional = INF;
+        $firstOptional = PHP_INT_MAX;
         if (!$isHost) {
             for ($i = count($tokens) - 1; $i >= 0; $i--) {
                 $token = $tokens[$i];
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/missing_id.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/missing_id.xml
index 52719be167ee..4ea4115f281a 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/missing_id.xml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/missing_id.xml
@@ -4,5 +4,5 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
 
-    <route pattern="/test"></route>
+    <route path="/test"></route>
 </routes>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/namespaceprefix.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/namespaceprefix.xml
index 79ec6e916922..bdd6a4732999 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/namespaceprefix.xml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/namespaceprefix.xml
@@ -4,7 +4,7 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
 
-    <r:route id="blog_show" pattern="/blog/{slug}" host="{_locale}.example.com">
+    <r:route id="blog_show" path="/blog/{slug}" host="{_locale}.example.com">
         <r:default key="_controller">MyBundle:Blog:show</r:default>
         <requirement xmlns="http://symfony.com/schema/routing" key="slug">\w+</requirement>
         <r2:requirement xmlns:r2="http://symfony.com/schema/routing" key="_locale">en|fr|de</r2:requirement>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalid.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalid.xml
index a9b72f392958..755e44304ce7 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalid.xml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalid.xml
@@ -4,9 +4,8 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
 
-    <route id="blog_show" pattern="/blog/{slug}">
+    <route id="blog_show" path="/blog/{slug}">
         <default key="_controller">MyBundle:Blog:show</default>
         <requirement key="_method">GET</requirement>
-        <option key="segment_separators">/</option>
     <!-- </route> -->
 </routes>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidroute.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidroute.xml
index cba82f3d299d..a46961eee5f2 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidroute.xml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidroute.xml
@@ -4,7 +4,7 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
 
-    <route id="blog_show" pattern="/blog/{slug}">
+    <route id="blog_show" path="/blog/{slug}">
         <default key="_controller">MyBundle:Blog:show</default>
         <requirement key="_method">GET</requirement>
         <option key="compiler_class">RouteCompiler</option>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
index 9841458a6367..b8bbbb5f8f01 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
@@ -6,18 +6,18 @@
 $collection->add('blog_show', new Route(
     '/blog/{slug}',
     array('_controller' => 'MyBlogBundle:Blog:show'),
-    array('_method' => 'GET', 'locale' => '\w+', '_scheme' => 'https'),
+    array('locale' => '\w+'),
     array('compiler_class' => 'RouteCompiler'),
-    '{locale}.example.com'
+    '{locale}.example.com',
+    array('https'),
+    array('GET','POST','put','OpTiOnS')
 ));
 $collection->add('blog_show_legacy', new Route(
     '/blog/{slug}',
     array('_controller' => 'MyBlogBundle:Blog:show'),
-    array('locale' => '\w+'),
+    array('_method' => 'GET|POST|put|OpTiOnS', '_scheme' => 'https', 'locale' => '\w+',),
     array('compiler_class' => 'RouteCompiler'),
-    '{locale}.example.com',
-    array('https'),
-    array('GET')
+    '{locale}.example.com'
 ));
 
 return $collection;
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
index df3a256acf8c..b4de9efb1fe6 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
@@ -4,7 +4,7 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
 
-    <route id="blog_show" path="/blog/{slug}" host="{locale}.example.com" methods="GET" schemes="https">
+    <route id="blog_show" path="/blog/{slug}" host="{locale}.example.com" methods="GET|POST  put,OpTiOnS" schemes="hTTps">
         <default key="_controller">MyBundle:Blog:show</default>
         <requirement key="locale">\w+</requirement>
         <option key="compiler_class">RouteCompiler</option>
@@ -12,8 +12,8 @@
 
     <route id="blog_show_legacy" pattern="/blog/{slug}" host="{locale}.example.com">
         <default key="_controller">MyBundle:Blog:show</default>
-        <requirement key="_method">GET</requirement>
-        <requirement key="_scheme">https</requirement>
+        <requirement key="_method">GET|POST|put|OpTiOnS</requirement>
+        <requirement key="_scheme">hTTps</requirement>
         <requirement key="locale">\w+</requirement>
         <option key="compiler_class">RouteCompiler</option>
     </route>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
index 419923e9c36a..4ada8832197b 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
@@ -1,17 +1,17 @@
 blog_show:
     path:         /blog/{slug}
-    defaults:     { _controller: MyBlogBundle:Blog:show }
+    defaults:     { _controller: "MyBundle:Blog:show" }
     host:         "{locale}.example.com"
     requirements: { 'locale': '\w+' }
-    methods:      ['GET']
+    methods:      ['GET','POST','put','OpTiOnS']
     schemes:      ['https']
     options:
         compiler_class: RouteCompiler
 
 blog_show_legacy:
     pattern:      /blog/{slug}
-    defaults:     { _controller: MyBlogBundle:Blog:show }
+    defaults:     { _controller: "MyBundle:Blog:show" }
     host:         "{locale}.example.com"
-    requirements: { '_method': 'GET', 'locale': '\w+', _scheme: 'https' }
+    requirements: { '_method': 'GET|POST|put|OpTiOnS', _scheme: https, 'locale': '\w+' }
     options:
         compiler_class: RouteCompiler
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.xml
index dd457dc82114..295c3cc428a6 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.xml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.xml
@@ -4,7 +4,7 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
 
-    <import resource="validpattern.xml" prefix="/{foo}" host="{locale}.example.com">
+    <import resource="validpattern.xml" prefix="/{foo}" host="">
         <default key="foo">123</default>
         <requirement key="foo">\d+</requirement>
         <option key="foo">bar</option>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.yml
index 1f5644e04b02..495ed854d1dd 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.yml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.yml
@@ -1,7 +1,7 @@
-blog_show:
+_blog:
     resource:     validpattern.yml
     prefix:       /{foo}
     defaults:     { 'foo': '123' }
     requirements: { 'foo': '\d+' }
     options:      { 'foo': 'bar' }
-    host:         "{locale}.example.com"
+    host:         ""
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
index 0728503b0632..512cbd4e1816 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
@@ -286,12 +286,19 @@ public function testWithAnIntegerAsADefaultValue()
         $this->assertEquals('/app.php/foo', $this->getGenerator($routes)->generate('test', array('default' => 'foo')));
     }
 
+    public function testNullForOptionalParameterIsIgnored()
+    {
+        $routes = $this->getRoutes('test', new Route('/test/{default}', array('default' => 0)));
+
+        $this->assertEquals('/app.php/test', $this->getGenerator($routes)->generate('test', array('default' => null)));
+    }
+
     public function testQueryParamSameAsDefault()
     {
         $routes = $this->getRoutes('test', new Route('/test', array('default' => 'value')));
 
-        $this->assertSame('/app.php/test?default=foo', $this->getGenerator($routes)->generate('test', array('default' => 'foo')));
-        $this->assertSame('/app.php/test?default=value', $this->getGenerator($routes)->generate('test', array('default' => 'value')));
+        $this->assertSame('/app.php/test', $this->getGenerator($routes)->generate('test', array('default' => 'foo')));
+        $this->assertSame('/app.php/test', $this->getGenerator($routes)->generate('test', array('default' => 'value')));
         $this->assertSame('/app.php/test', $this->getGenerator($routes)->generate('test'));
     }
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
index 7494fb01d9de..18b166fc558c 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
@@ -44,12 +44,12 @@ public function testLoadWithRoute()
         $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
 
         foreach ($routes as $route) {
-            $this->assertEquals('/blog/{slug}', $route->getPath());
-            $this->assertEquals('MyBlogBundle:Blog:show', $route->getDefault('_controller'));
-            $this->assertEquals('GET', $route->getRequirement('_method'));
-            $this->assertEquals('https', $route->getRequirement('_scheme'));
-            $this->assertEquals('{locale}.example.com', $route->getHost());
-            $this->assertEquals('RouteCompiler', $route->getOption('compiler_class'));
+            $this->assertSame('/blog/{slug}', $route->getPath());
+            $this->assertSame('MyBlogBundle:Blog:show', $route->getDefault('_controller'));
+            $this->assertSame('{locale}.example.com', $route->getHost());
+            $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
+            $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
+            $this->assertEquals(array('https'), $route->getSchemes());
         }
     }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
index b67ebf348603..833862e21815 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
@@ -43,14 +43,16 @@ public function testLoadWithRoute()
 
         $this->assertCount(2, $routes, 'Two routes are loaded');
         $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
-        $route = $routes['blog_show'];
-        $this->assertEquals('/blog/{slug}', $route->getPath());
-        $this->assertEquals('MyBundle:Blog:show', $route->getDefault('_controller'));
-        $this->assertEquals('GET', $route->getRequirement('_method'));
-        $this->assertEquals('https', $route->getRequirement('_scheme'));
-        $this->assertEquals('\w+', $route->getRequirement('locale'));
-        $this->assertEquals('{locale}.example.com', $route->getHost());
-        $this->assertEquals('RouteCompiler', $route->getOption('compiler_class'));
+
+        foreach ($routes as $route) {
+            $this->assertSame('/blog/{slug}', $route->getPath());
+            $this->assertSame('{locale}.example.com', $route->getHost());
+            $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
+            $this->assertSame('\w+', $route->getRequirement('locale'));
+            $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
+            $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
+            $this->assertEquals(array('https'), $route->getSchemes());
+        }
     }
 
     public function testLoadWithNamespacePrefix()
@@ -61,12 +63,12 @@ public function testLoadWithNamespacePrefix()
         $this->assertCount(1, $routeCollection->all(), 'One route is loaded');
 
         $route = $routeCollection->get('blog_show');
-        $this->assertEquals('/blog/{slug}', $route->getPath());
-        $this->assertEquals('MyBundle:Blog:show', $route->getDefault('_controller'));
-        $this->assertEquals('\w+', $route->getRequirement('slug'));
-        $this->assertEquals('en|fr|de', $route->getRequirement('_locale'));
-        $this->assertEquals('{_locale}.example.com', $route->getHost());
-        $this->assertEquals('RouteCompiler', $route->getOption('compiler_class'));
+        $this->assertSame('/blog/{slug}', $route->getPath());
+        $this->assertSame('{_locale}.example.com', $route->getHost());
+        $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
+        $this->assertSame('\w+', $route->getRequirement('slug'));
+        $this->assertSame('en|fr|de', $route->getRequirement('_locale'));
+        $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
     }
 
     public function testLoadWithImport()
@@ -79,12 +81,11 @@ public function testLoadWithImport()
         $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
 
         foreach ($routes as $route) {
-            $this->assertEquals('/{foo}/blog/{slug}', $routes['blog_show']->getPath());
-            $this->assertEquals('MyBundle:Blog:show', $routes['blog_show']->getDefault('_controller'));
-            $this->assertEquals('123', $routes['blog_show']->getDefault('foo'));
-            $this->assertEquals('\d+', $routes['blog_show']->getRequirement('foo'));
-            $this->assertEquals('bar', $routes['blog_show']->getOption('foo'));
-            $this->assertEquals('{locale}.example.com', $routes['blog_show']->getHost());
+            $this->assertSame('/{foo}/blog/{slug}', $route->getPath());
+            $this->assertSame('123', $route->getDefault('foo'));
+            $this->assertSame('\d+', $route->getRequirement('foo'));
+            $this->assertSame('bar', $route->getOption('foo'));
+            $this->assertSame('', $route->getHost());
         }
     }
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
index b6234bf8e5d1..a3e934cef02b 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
@@ -73,7 +73,7 @@ public function testLoadSpecialRouteName()
         $this->assertSame('/true', $route->getPath());
     }
 
-    public function testLoadWithPattern()
+    public function testLoadWithRoute()
     {
         $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
         $routeCollection = $loader->load('validpattern.yml');
@@ -83,13 +83,13 @@ public function testLoadWithPattern()
         $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
 
         foreach ($routes as $route) {
-            $this->assertEquals('/blog/{slug}', $route->getPath());
-            $this->assertEquals('MyBlogBundle:Blog:show', $route->getDefault('_controller'));
-            $this->assertEquals('GET', $route->getRequirement('_method'));
-            $this->assertEquals('https', $route->getRequirement('_scheme'));
-            $this->assertEquals('\w+', $route->getRequirement('locale'));
-            $this->assertEquals('{locale}.example.com', $route->getHost());
-            $this->assertEquals('RouteCompiler', $route->getOption('compiler_class'));
+            $this->assertSame('/blog/{slug}', $route->getPath());
+            $this->assertSame('{locale}.example.com', $route->getHost());
+            $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
+            $this->assertSame('\w+', $route->getRequirement('locale'));
+            $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
+            $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
+            $this->assertEquals(array('https'), $route->getSchemes());
         }
     }
 
@@ -101,11 +101,13 @@ public function testLoadWithResource()
 
         $this->assertCount(2, $routes, 'Two routes are loaded');
         $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
-        $this->assertEquals('/{foo}/blog/{slug}', $routes['blog_show']->getPath());
-        $this->assertEquals('MyBlogBundle:Blog:show', $routes['blog_show']->getDefault('_controller'));
-        $this->assertEquals('123', $routes['blog_show']->getDefault('foo'));
-        $this->assertEquals('\d+', $routes['blog_show']->getRequirement('foo'));
-        $this->assertEquals('bar', $routes['blog_show']->getOption('foo'));
-        $this->assertEquals('{locale}.example.com', $routes['blog_show']->getHost());
+
+        foreach ($routes as $route) {
+            $this->assertSame('/{foo}/blog/{slug}', $route->getPath());
+            $this->assertSame('123', $route->getDefault('foo'));
+            $this->assertSame('\d+', $route->getRequirement('foo'));
+            $this->assertSame('bar', $route->getOption('foo'));
+            $this->assertSame('', $route->getHost());
+        }
     }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php
index da72d6b3a91f..72bee7100228 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php
@@ -150,7 +150,8 @@ private function getRouteCollection()
         $route3 = new Route('/route3', array(), array(), array(), 'b.example.com');
         $collection2->add('route3', $route3);
 
-        $collection1->addCollection($collection2, '/c2');
+        $collection2->addPrefix('/c2');
+        $collection1->addCollection($collection2);
 
         $route4 = new Route('/route4', array(), array(), array(), 'a.example.com');
         $collection1->add('route4', $route4);
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
index 4764df617da4..542ede85c001 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
@@ -118,14 +118,17 @@ public function getRouteCollections()
         $collection1->add('overridden', new Route('/overridden1'));
         $collection1->add('foo1', new Route('/{foo}'));
         $collection1->add('bar1', new Route('/{bar}'));
+        $collection1->addPrefix('/b\'b');
         $collection2 = new RouteCollection();
-        $collection2->addCollection($collection1, '/b\'b');
+        $collection2->addCollection($collection1);
         $collection2->add('overridden', new Route('/{var}', array(), array('var' => '.*')));
         $collection1 = new RouteCollection();
         $collection1->add('foo2', new Route('/{foo1}'));
         $collection1->add('bar2', new Route('/{bar1}'));
-        $collection2->addCollection($collection1, '/b\'b');
-        $collection->addCollection($collection2, '/a');
+        $collection1->addPrefix('/b\'b');
+        $collection2->addCollection($collection1);
+        $collection2->addPrefix('/a');
+        $collection->addCollection($collection2);
 
         // overridden through addCollection() and multiple sub-collections with no own prefix
         $collection1 = new RouteCollection();
@@ -137,15 +140,16 @@ public function getRouteCollections()
         $collection3->add('hey', new Route('/hey/'));
         $collection2->addCollection($collection3);
         $collection1->addCollection($collection2);
-        $collection->addCollection($collection1, '/multi');
+        $collection1->addPrefix('/multi');
+        $collection->addCollection($collection1);
 
         // "dynamic" prefix
         $collection1 = new RouteCollection();
         $collection1->add('foo3', new Route('/{foo}'));
         $collection1->add('bar3', new Route('/{bar}'));
-        $collection2 = new RouteCollection();
-        $collection2->addCollection($collection1, '/b');
-        $collection->addCollection($collection2, '/{_locale}');
+        $collection1->addPrefix('/b');
+        $collection1->addPrefix('{_locale}');
+        $collection->addCollection($collection1);
 
         // route between collections
         $collection->add('ababa', new Route('/ababa'));
@@ -153,7 +157,8 @@ public function getRouteCollections()
         // collection with static prefix but only one route
         $collection1 = new RouteCollection();
         $collection1->add('foo4', new Route('/{foo}'));
-        $collection->addCollection($collection1, '/aba');
+        $collection1->addPrefix('/aba');
+        $collection->addCollection($collection1);
 
         // prefix and host
 
@@ -215,10 +220,12 @@ public function getRouteCollections()
         $collection2->add('b', new Route('/{var}'));
         $collection3 = new RouteCollection();
         $collection3->add('c', new Route('/{var}'));
-
-        $collection2->addCollection($collection3, '/c');
-        $collection1->addCollection($collection2, '/b');
-        $collection->addCollection($collection1, '/a');
+        $collection3->addPrefix('/c');
+        $collection2->addCollection($collection3);
+        $collection2->addPrefix('/b');
+        $collection1->addCollection($collection2);
+        $collection1->addPrefix('/a');
+        $collection->addCollection($collection1);
 
         /* test case 2 */
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
index fee6fe2b6f8a..8a1428f17085 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
@@ -130,14 +130,10 @@ public function testMatch()
 
     public function testMatchWithPrefixes()
     {
-        $collection1 = new RouteCollection();
-        $collection1->add('foo', new Route('/{foo}'));
-
-        $collection2 = new RouteCollection();
-        $collection2->addCollection($collection1, '/b');
-
         $collection = new RouteCollection();
-        $collection->addCollection($collection2, '/a');
+        $collection->add('foo', new Route('/{foo}'));
+        $collection->addPrefix('/b');
+        $collection->addPrefix('/a');
 
         $matcher = new UrlMatcher($collection, new RequestContext());
         $this->assertEquals(array('_route' => 'foo', 'foo' => 'foo'), $matcher->match('/a/b/foo'));
@@ -145,14 +141,10 @@ public function testMatchWithPrefixes()
 
     public function testMatchWithDynamicPrefix()
     {
-        $collection1 = new RouteCollection();
-        $collection1->add('foo', new Route('/{foo}'));
-
-        $collection2 = new RouteCollection();
-        $collection2->addCollection($collection1, '/b');
-
         $collection = new RouteCollection();
-        $collection->addCollection($collection2, '/{_locale}');
+        $collection->add('foo', new Route('/{foo}'));
+        $collection->addPrefix('/b');
+        $collection->addPrefix('/{_locale}');
 
         $matcher = new UrlMatcher($collection, new RequestContext());
         $this->assertEquals(array('_locale' => 'fr', '_route' => 'foo', 'foo' => 'foo'), $matcher->match('/fr/b/foo'));
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
index 65f9967e6a1a..901317663f69 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
@@ -54,16 +54,19 @@ public function testDeepOverriddenRoute()
         $this->assertEquals('/foo2', $collection->get('foo')->getPath());
     }
 
-    public function testIteratorWithOverriddenRoutes()
+    public function testIterator()
     {
         $collection = new RouteCollection();
         $collection->add('foo', new Route('/foo'));
 
         $collection1 = new RouteCollection();
-        $collection1->add('foo', new Route('/foo1'));
+        $collection1->add('bar', $bar = new Route('/bar'));
+        $collection1->add('foo', $foo = new Route('/foo-new'));
         $collection->addCollection($collection1);
+        $collection->add('last', $last = new Route('/last'));
 
-        $this->assertEquals('/foo1', $this->getFirstNamedRoute($collection, 'foo')->getPath());
+        $this->assertInstanceOf('\ArrayIterator', $collection->getIterator());
+        $this->assertSame(array('bar' => $bar, 'foo' => $foo, 'last' => $last), $collection->getIterator()->getArrayCopy());
     }
 
     public function testCount()
@@ -72,58 +75,71 @@ public function testCount()
         $collection->add('foo', new Route('/foo'));
 
         $collection1 = new RouteCollection();
-        $collection1->add('foo1', new Route('/foo1'));
+        $collection1->add('bar', new Route('/bar'));
         $collection->addCollection($collection1);
 
         $this->assertCount(2, $collection);
     }
 
-    protected function getFirstNamedRoute(RouteCollection $routeCollection, $name)
+    public function testAddCollection()
     {
-        foreach ($routeCollection as $key => $route) {
-            if ($route instanceof RouteCollection) {
-                return $this->getFirstNamedRoute($route, $name);
-            }
-
-            if ($name === $key) {
-                return $route;
-            }
-        }
+        $collection = new RouteCollection();
+        $collection->add('foo', new Route('/foo'));
+
+        $collection1 = new RouteCollection();
+        $collection1->add('bar', $bar = new Route('/bar'));
+        $collection1->add('foo', $foo = new Route('/foo-new'));
+
+        $collection2 = new RouteCollection();
+        $collection2->add('grandchild', $grandchild = new Route('/grandchild'));
+
+        $collection1->addCollection($collection2);
+        $collection->addCollection($collection1);
+        $collection->add('last', $last = new Route('/last'));
+
+        $this->assertSame(array('bar' => $bar, 'foo' => $foo, 'grandchild' => $grandchild, 'last' => $last), $collection->all(), 
+            '->addCollection() imports routes of another collection, overrides if necessary and adds them at the end');
     }
 
-    public function testAddCollection()
+    public function testAddCollectionWithResources()
     {
         if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
             $this->markTestSkipped('The "Config" component is not available');
         }
 
         $collection = new RouteCollection();
-        $collection->add('foo', $foo = new Route('/foo'));
+        $collection->addResource($foo = new FileResource(__DIR__.'/Fixtures/foo.xml'));
         $collection1 = new RouteCollection();
-        $collection1->add('foo', $foo1 = new Route('/foo1'));
-        $collection1->add('bar', $bar1 = new Route('/bar1'));
+        $collection1->addResource($foo1 = new FileResource(__DIR__.'/Fixtures/foo1.xml'));
         $collection->addCollection($collection1);
-        $this->assertEquals(array('foo' => $foo1, 'bar' => $bar1), $collection->all(), '->addCollection() adds routes from another collection');
+        $this->assertEquals(array($foo, $foo1), $collection->getResources(), '->addCollection() merges resources');
+    }
 
+    public function testAddDefaultsAndRequirementsAndOptions()
+    {
         $collection = new RouteCollection();
-        $collection->add('foo', $foo = new Route('/foo'));
+        $collection->add('foo', new Route('/{placeholder}'));
         $collection1 = new RouteCollection();
-        $collection1->add('foo', $foo1 = new Route('/foo1'));
-        $collection->addCollection($collection1, '/{foo}', array('foo' => 'foo'), array('foo' => '\d+'), array('foo' => 'bar'));
-        $this->assertEquals('/{foo}/foo1', $collection->get('foo')->getPath(), '->addCollection() can add a prefix to all merged routes');
-        $this->assertEquals(array('foo' => 'foo'), $collection->get('foo')->getDefaults(), '->addCollection() can add a prefix to all merged routes');
-        $this->assertEquals(array('foo' => '\d+'), $collection->get('foo')->getRequirements(), '->addCollection() can add a prefix to all merged routes');
-        $this->assertEquals(
-            array('foo' => 'bar', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'),
-            $collection->get('foo')->getOptions(), '->addCollection() can add an option to all merged routes'
+        $collection1->add('bar', new Route('/{placeholder}',
+            array('_controller' => 'fixed', 'placeholder' => 'default'), array('placeholder' => '.+'), array('option' => 'value'))
         );
-
-        $collection = new RouteCollection();
-        $collection->addResource($foo = new FileResource(__DIR__.'/Fixtures/foo.xml'));
-        $collection1 = new RouteCollection();
-        $collection1->addResource($foo1 = new FileResource(__DIR__.'/Fixtures/foo1.xml'));
         $collection->addCollection($collection1);
-        $this->assertEquals(array($foo, $foo1), $collection->getResources(), '->addCollection() merges resources');
+
+        $collection->addDefaults(array('placeholder' => 'new-default'));
+        $this->assertEquals(array('placeholder' => 'new-default'), $collection->get('foo')->getDefaults(), '->addDefaults() adds defaults to all routes');
+        $this->assertEquals(array('_controller' => 'fixed', 'placeholder' => 'new-default'), $collection->get('bar')->getDefaults(),
+            '->addDefaults() adds defaults to all routes and overwrites existing ones');
+
+        $collection->addRequirements(array('placeholder' => '\d+'));
+        $this->assertEquals(array('placeholder' => '\d+'), $collection->get('foo')->getRequirements(), '->addRequirements() adds requirements to all routes');
+        $this->assertEquals(array('placeholder' => '\d+'), $collection->get('bar')->getRequirements(),
+            '->addRequirements() adds requirements to all routes and overwrites existing ones');
+
+        $collection->addOptions(array('option' => 'new-value'));
+        $this->assertEquals(
+            array('option' => 'new-value', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'),
+            $collection->get('bar')->getOptions(), '->addOptions() adds options to all routes and overwrites existing ones'
+        );
     }
 
     public function testAddPrefix()
@@ -133,30 +149,20 @@ public function testAddPrefix()
         $collection2 = new RouteCollection();
         $collection2->add('bar', $bar = new Route('/bar'));
         $collection->addCollection($collection2);
-        $this->assertSame('', $collection->getPrefix(), '->getPrefix() is initialized with ""');
         $collection->addPrefix(' / ');
-        $this->assertSame('', $collection->getPrefix(), '->addPrefix() trims the prefix and a single slash has no effect');
-        $collection->addPrefix('/{admin}', array('admin' => 'admin'), array('admin' => '\d+'), array('foo' => 'bar'));
+        $this->assertSame('/foo', $collection->get('foo')->getPattern(), '->addPrefix() trims the prefix and a single slash has no effect');
+        $collection->addPrefix('/{admin}', array('admin' => 'admin'), array('admin' => '\d+'));
         $this->assertEquals('/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() adds a prefix to all routes');
         $this->assertEquals('/{admin}/bar', $collection->get('bar')->getPath(), '->addPrefix() adds a prefix to all routes');
         $this->assertEquals(array('admin' => 'admin'), $collection->get('foo')->getDefaults(), '->addPrefix() adds defaults to all routes');
         $this->assertEquals(array('admin' => 'admin'), $collection->get('bar')->getDefaults(), '->addPrefix() adds defaults to all routes');
         $this->assertEquals(array('admin' => '\d+'), $collection->get('foo')->getRequirements(), '->addPrefix() adds requirements to all routes');
         $this->assertEquals(array('admin' => '\d+'), $collection->get('bar')->getRequirements(), '->addPrefix() adds requirements to all routes');
-        $this->assertEquals(
-            array('foo' => 'bar', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'),
-            $collection->get('foo')->getOptions(), '->addPrefix() adds an option to all routes'
-        );
-        $this->assertEquals(
-            array('foo' => 'bar', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'),
-            $collection->get('bar')->getOptions(), '->addPrefix() adds an option to all routes'
-        );
         $collection->addPrefix('0');
-        $this->assertEquals('/0/{admin}', $collection->getPrefix(), '->addPrefix() ensures a prefix must start with a slash and must not end with a slash');
+        $this->assertEquals('/0/{admin}/foo', $collection->get('foo')->getPattern(), '->addPrefix() ensures a prefix must start with a slash and must not end with a slash');
         $collection->addPrefix('/ /');
-        $this->assertSame('/ /0/{admin}', $collection->getPrefix(), '->addPrefix() can handle spaces if desired');
-        $this->assertSame('/ /0/{admin}/foo', $collection->get('foo')->getPath(), 'the route path is in synch with the collection prefix');
-        $this->assertSame('/ /0/{admin}/bar', $collection->get('bar')->getPath(), 'the route path in a sub-collection is in synch with the collection prefix');
+        $this->assertSame('/ /0/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() can handle spaces if desired');
+        $this->assertSame('/ /0/{admin}/bar', $collection->get('bar')->getPath(), 'the route pattern of an added collection is in synch with the added prefix');
     }
 
     public function testAddPrefixOverridesDefaultsAndRequirements()
@@ -170,19 +176,6 @@ public function testAddPrefixOverridesDefaultsAndRequirements()
         $this->assertEquals('https', $collection->get('bar')->getRequirement('_scheme'), '->addPrefix() overrides existing requirements');
     }
 
-    public function testAddCollectionOverridesDefaultsAndRequirements()
-    {
-        $imported = new RouteCollection();
-        $imported->add('foo', $foo = new Route('/foo'));
-        $imported->add('bar', $bar = new Route('/bar', array(), array('_scheme' => 'http')));
-
-        $collection = new RouteCollection();
-        $collection->addCollection($imported, null, array(), array('_scheme' => 'https'));
-
-        $this->assertEquals('https', $collection->get('foo')->getRequirement('_scheme'), '->addCollection() overrides existing requirements');
-        $this->assertEquals('https', $collection->get('bar')->getRequirement('_scheme'), '->addCollection() overrides existing requirements');
-    }
-
     public function testResource()
     {
         if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
@@ -191,7 +184,11 @@ public function testResource()
 
         $collection = new RouteCollection();
         $collection->addResource($foo = new FileResource(__DIR__.'/Fixtures/foo.xml'));
-        $this->assertEquals(array($foo), $collection->getResources(), '->addResources() adds a resource');
+        $collection->addResource($bar = new FileResource(__DIR__.'/Fixtures/bar.xml'));
+        $collection->addResource(new FileResource(__DIR__.'/Fixtures/foo.xml'));
+
+        $this->assertEquals(array($foo, $bar), $collection->getResources(),
+            '->addResource() adds a resource and getResources() only returns unique ones by comparing the string representation');
     }
 
     public function testUniqueRouteWithGivenName()
@@ -217,13 +214,31 @@ public function testGet()
         $collection2 = new RouteCollection();
         $collection2->add('b', $b = new Route('/b'));
         $collection1->addCollection($collection2);
+        $collection1->add('$péß^a|', $c = new Route('/special'));
 
         $this->assertSame($b, $collection1->get('b'), '->get() returns correct route in child collection');
+        $this->assertSame($c, $collection1->get('$péß^a|'), '->get() can handle special characters');
         $this->assertNull($collection2->get('a'), '->get() does not return the route defined in parent collection');
         $this->assertNull($collection1->get('non-existent'), '->get() returns null when route does not exist');
         $this->assertNull($collection1->get(0), '->get() does not disclose internal child RouteCollection');
     }
 
+    public function testRemove()
+    {
+        $collection = new RouteCollection();
+        $collection->add('foo', $foo = new Route('/foo'));
+
+        $collection1 = new RouteCollection();
+        $collection1->add('bar', $bar = new Route('/bar'));
+        $collection->addCollection($collection1);
+        $collection->add('last', $last = new Route('/last'));
+
+        $collection->remove('foo');
+        $this->assertSame(array('bar' => $bar, 'last' => $last), $collection->all(), '->remove() can remove a single route');
+        $collection->remove(array('bar', 'last'));
+        $this->assertSame(array(), $collection->all(), '->remove() accepts an array and can remove multiple routes at once');
+    }
+
     public function testSetHost()
     {
         $collection = new RouteCollection();
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
index 909b3cefe7b4..0c77a16a9ecc 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
@@ -287,7 +287,7 @@ private function parseXml($node)
      *
      * @throws UnexpectedValueException
      */
-    private function buildXml($parentNode, $data, $xmlRootNodeName)
+    private function buildXml($parentNode, $data, $xmlRootNodeName = null)
     {
         $append = true;
 
@@ -392,7 +392,7 @@ private function needsCdataWrapping($val)
     private function selectNodeType($node, $val)
     {
         if (is_array($val)) {
-            return $this->buildXml($node, $val, null);
+            return $this->buildXml($node, $val);
         } elseif ($val instanceof \SimpleXMLElement) {
             $child = $this->dom->importNode(dom_import_simplexml($val), true);
             $node->appendChild($child);
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/JsonEncoderTest.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/JsonEncoderTest.php
index c2f60728d96d..b5ec1a235223 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/JsonEncoderTest.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/JsonEncoderTest.php
@@ -61,7 +61,6 @@ public function testOptions()
         $this->assertEquals($expected, $this->serializer->serialize($arr, 'json'), 'Context should not be persistent');
     }
 
-
     protected function getJsonSource()
     {
         return '{"foo":"foo","bar":["a","b"],"baz":{"key":"val","key2":"val","A B":"bar","item":[{"title":"title1"},{"title":"title2"}],"Barry":{"FooBar":{"Baz":"Ed","@id":1}}},"qux":"1"}';
diff --git a/core/vendor/symfony/translation/Symfony/Component/Translation/TranslatorInterface.php b/core/vendor/symfony/translation/Symfony/Component/Translation/TranslatorInterface.php
index 2d75cf6aa8c7..3dcdd4fc375b 100644
--- a/core/vendor/symfony/translation/Symfony/Component/Translation/TranslatorInterface.php
+++ b/core/vendor/symfony/translation/Symfony/Component/Translation/TranslatorInterface.php
@@ -23,7 +23,7 @@ interface TranslatorInterface
     /**
      * Translates the given message.
      *
-     * @param string $id         The message id
+     * @param string $id         The message id (may also be an object that can be cast to string)
      * @param array  $parameters An array of parameters for the message
      * @param string $domain     The domain for the message
      * @param string $locale     The locale
@@ -37,7 +37,7 @@ public function trans($id, array $parameters = array(), $domain = null, $locale
     /**
      * Translates the given choice message by choosing a translation according to a number.
      *
-     * @param string  $id         The message id
+     * @param string  $id         The message id (may also be an object that can be cast to string)
      * @param integer $number     The number to use to find the indice of the message
      * @param array   $parameters An array of parameters for the message
      * @param string  $domain     The domain for the message
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/FileValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/FileValidator.php
index 7d68882770f8..06e16ebe2ca6 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/FileValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/FileValidator.php
@@ -37,8 +37,21 @@ public function validate($value, Constraint $constraint)
         if ($value instanceof UploadedFile && !$value->isValid()) {
             switch ($value->getError()) {
                 case UPLOAD_ERR_INI_SIZE:
-                    $maxSize = UploadedFile::getMaxFilesize();
-                    $maxSize = $constraint->maxSize ? min($maxSize, $constraint->maxSize) : $maxSize;
+                    if ($constraint->maxSize) {
+                        if (ctype_digit((string) $constraint->maxSize)) {
+                            $maxSize = (int) $constraint->maxSize;
+                        } elseif (preg_match('/^\d++k$/', $constraint->maxSize)) {
+                            $maxSize = $constraint->maxSize * 1024;
+                        } elseif (preg_match('/^\d++M$/', $constraint->maxSize)) {
+                            $maxSize = $constraint->maxSize * 1048576;
+                        } else {
+                            throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum size', $constraint->maxSize));
+                        }
+                        $maxSize = min(UploadedFile::getMaxFilesize(), $maxSize);
+                    } else {
+                        $maxSize = UploadedFile::getMaxFilesize();
+                    }
+
                     $this->context->addViolation($constraint->uploadIniSizeErrorMessage, array(
                         '{{ limit }}' => $maxSize,
                         '{{ suffix }}' => 'bytes',
@@ -97,15 +110,15 @@ public function validate($value, Constraint $constraint)
         if ($constraint->maxSize) {
             if (ctype_digit((string) $constraint->maxSize)) {
                 $size = filesize($path);
-                $limit = $constraint->maxSize;
+                $limit = (int) $constraint->maxSize;
                 $suffix = 'bytes';
-            } elseif (preg_match('/^(\d+)k$/', $constraint->maxSize, $matches)) {
+            } elseif (preg_match('/^\d++k$/', $constraint->maxSize)) {
                 $size = round(filesize($path) / 1000, 2);
-                $limit = $matches[1];
+                $limit = (int) $constraint->maxSize;
                 $suffix = 'kB';
-            } elseif (preg_match('/^(\d+)M$/', $constraint->maxSize, $matches)) {
+            } elseif (preg_match('/^\d++M$/', $constraint->maxSize)) {
                 $size = round(filesize($path) / 1000000, 2);
-                $limit = $matches[1];
+                $limit = (int) $constraint->maxSize;
                 $suffix = 'MB';
             } else {
                 throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum size', $constraint->maxSize));
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/DefaultTranslator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/DefaultTranslator.php
index c4f685e6939a..20b2e1135083 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/DefaultTranslator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/DefaultTranslator.php
@@ -22,20 +22,20 @@
  * Example usage:
  *
  *     $translator = new DefaultTranslator();
- *    
+ *
  *     echo $translator->trans(
  *         'This is a {{ var }}.',
  *         array('{{ var }}' => 'donkey')
  *     );
- *    
+ *
  *     // -> This is a donkey.
- *    
+ *
  *     echo $translator->transChoice(
  *         'This is {{ count }} donkey.|These are {{ count }} donkeys.',
  *         3,
  *         array('{{ count }}' => 'three')
  *     );
- *    
+ *
  *     // -> These are three donkeys.
  *
  * This translator does not support message catalogs, translation domains or
@@ -56,12 +56,12 @@ class DefaultTranslator implements TranslatorInterface
      * Example usage:
      *
      *     $translator = new DefaultTranslator();
-     *    
+     *
      *     echo $translator->trans(
      *         'This is a {{ var }}.',
      *         array('{{ var }}' => 'donkey')
      *     );
-     *    
+     *
      *     // -> This is a donkey.
      *
      * @param string $id         The message id
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/README.md b/core/vendor/symfony/validator/Symfony/Component/Validator/README.md
index f1b255602a9d..27e0977fbd16 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/README.md
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/README.md
@@ -107,7 +107,7 @@ https://github.com/fabpot/Silex/blob/master/src/Silex/Provider/ValidatorServiceP
 
 Documentation:
 
-http://symfony.com/doc/2.0/book/validation.html
+http://symfony.com/doc/2.2/book/validation.html
 
 JSR-303 Specification:
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php
index 7862d130e2fa..5cb4e10047a5 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php
@@ -288,12 +288,13 @@ public function testInvalidWildcardMimeType()
     /**
      * @dataProvider uploadedFileErrorProvider
      */
-    public function testUploadedFileError($error, $message, array $params = array())
+    public function testUploadedFileError($error, $message, array $params = array(), $maxSize = null)
     {
         $file = new UploadedFile('/path/to/file', 'originalName', 'mime', 0, $error);
 
         $constraint = new File(array(
             $message => 'myMessage',
+            'maxSize' => $maxSize
         ));
 
         $this->context->expects($this->once())
@@ -316,10 +317,24 @@ public function uploadedFileErrorProvider()
         );
 
         if (class_exists('Symfony\Component\HttpFoundation\File\UploadedFile')) {
+            // when no maxSize is specified on constraint, it should use the ini value
             $tests[] = array(UPLOAD_ERR_INI_SIZE, 'uploadIniSizeErrorMessage', array(
                 '{{ limit }}' => UploadedFile::getMaxFilesize(),
                 '{{ suffix }}' => 'bytes',
             ));
+
+            // it should use the smaller limitation (maxSize option in this case)
+            $tests[] = array(UPLOAD_ERR_INI_SIZE, 'uploadIniSizeErrorMessage', array(
+                '{{ limit }}' => 1,
+                '{{ suffix }}' => 'bytes',
+            ), '1');
+
+            // it correctly parses the maxSize option and not only uses simple string comparison
+            // 1000M should be bigger than the ini value
+            $tests[] = array(UPLOAD_ERR_INI_SIZE, 'uploadIniSizeErrorMessage', array(
+                '{{ limit }}' => UploadedFile::getMaxFilesize(),
+                '{{ suffix }}' => 'bytes',
+            ), '1000M');
         }
 
         return $tests;
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Validator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Validator.php
index 8221d6026695..202e1e2f10dc 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Validator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Validator.php
@@ -52,7 +52,7 @@ public function __construct(
         MetadataFactoryInterface $metadataFactory,
         ConstraintValidatorFactoryInterface $validatorFactory,
         TranslatorInterface $translator,
-        $translationDomain = null,
+        $translationDomain = 'validators',
         array $objectInitializers = array()
     )
     {
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
index 21a121a060db..45978a12554a 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
@@ -237,11 +237,6 @@ public static function parseScalar($scalar, $delimiters = null, $stringDelimiter
      */
     private static function parseQuotedScalar($scalar, &$i)
     {
-        // Only check the current item we're dealing with (for sequences)
-        $subject = substr($scalar, $i);
-        $items = preg_split('/[\'"]\s*(?:[,:]|[}\]]\s*,)/', $subject);
-        $subject = substr($subject, 0, strlen($items[0]) + 1);
-
         if (!preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) {
             throw new ParseException(sprintf('Malformed inline YAML string (%s).', substr($scalar, $i)));
         }
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
index 8129b41e070c..bafceb06c887 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
@@ -414,64 +414,61 @@ private function parseValue($value, $exceptionOnInvalidType, $objectSupport)
      */
     private function parseFoldedScalar($separator, $indicator = '', $indentation = 0)
     {
-        $separator = '|' == $separator ? "\n" : ' ';
-        $text = '';
-
         $notEOF = $this->moveToNextLine();
-
-        while ($notEOF && $this->isCurrentLineBlank()) {
-            $text .= "\n";
-
-            $notEOF = $this->moveToNextLine();
-        }
-
         if (!$notEOF) {
             return '';
         }
 
-        if (!preg_match('#^(?P<indent>'.($indentation ? str_repeat(' ', $indentation) : ' +').')(?P<text>.*)$#u', $this->currentLine, $matches)) {
-            $this->moveToPreviousLine();
-
-            return '';
+        // determine indentation if not specified
+        if (0 === $indentation) {
+            if (preg_match('/^ +/', $this->currentLine, $matches)) {
+                $indentation = strlen($matches[0]);
+            }
         }
 
-        $textIndent = $matches['indent'];
-        $previousIndent = 0;
-
-        $text .= $matches['text'].$separator;
-        while ($this->currentLineNb + 1 < count($this->lines)) {
-            $this->moveToNextLine();
-
-            if (preg_match('#^(?P<indent> {'.strlen($textIndent).',})(?P<text>.+)$#u', $this->currentLine, $matches)) {
-                if (' ' == $separator && $previousIndent != $matches['indent']) {
-                    $text = substr($text, 0, -1)."\n";
+        $text = '';
+        if ($indentation > 0) {
+            $pattern = sprintf('/^ {%d}(.*)$/', $indentation);
+
+            $isCurrentLineBlank = $this->isCurrentLineBlank();
+            while (
+                $notEOF && (
+                    $isCurrentLineBlank ||
+                    preg_match($pattern, $this->currentLine, $matches)
+                )
+            ) {
+                if ($isCurrentLineBlank) {
+                    $text .= substr($this->currentLine, $indentation);
+                } else {
+                    $text .= $matches[1];
                 }
-                $previousIndent = $matches['indent'];
 
-                $text .= str_repeat(' ', $diff = strlen($matches['indent']) - strlen($textIndent)).$matches['text'].($diff ? "\n" : $separator);
-            } elseif (preg_match('#^(?P<text> *)$#', $this->currentLine, $matches)) {
-                $text .= preg_replace('#^ {1,'.strlen($textIndent).'}#', '', $matches['text'])."\n";
-            } else {
-                $this->moveToPreviousLine();
-
-                break;
+                // newline only if not EOF
+                if ($notEOF = $this->moveToNextLine()) {
+                    $text .= "\n";
+                    $isCurrentLineBlank = $this->isCurrentLineBlank();
+                }
             }
+        } elseif ($notEOF) {
+            $text .= "\n";
         }
 
-        if (' ' == $separator) {
-            // replace last separator by a newline
-            $text = preg_replace('/ (\n*)$/', "\n$1", $text);
+        if ($notEOF) {
+            $this->moveToPreviousLine();
         }
 
-        switch ($indicator) {
-            case '':
-                $text = preg_replace('#\n+$#s', "\n", $text);
-                break;
-            case '+':
-                break;
-            case '-':
-                $text = preg_replace('#\n+$#s', '', $text);
-                break;
+        // replace all non-trailing single newlines with spaces in folded blocks
+        if ('>' === $separator) {
+            preg_match('/(\n*)$/', $text, $matches);
+            $text = preg_replace('/(?<!\n)\n(?!\n)/', ' ', rtrim($text, "\n"));
+            $text .= $matches[1];
+        }
+
+        // deal with trailing newlines as indicated
+        if ('' === $indicator) {
+            $text = preg_replace('/\n+$/s', "\n", $text);
+        } elseif ('-' === $indicator) {
+            $text = preg_replace('/\n+$/s', '', $text);
         }
 
         return $text;
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
index 1199118d7798..c51a257dc08f 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
@@ -21,6 +21,21 @@ class DumperTest extends \PHPUnit_Framework_TestCase
     protected $dumper;
     protected $path;
 
+    protected $array = array(
+        '' => 'bar',
+        'foo' => '#bar',
+        'foo\'bar' => array(),
+        'bar' => array(1, 'foo'),
+        'foobar' => array(
+            'foo' => 'bar',
+            'bar' => array(1, 'foo'),
+            'foobar' => array(
+                'foo' => 'bar',
+                'bar' => array(1, 'foo'),
+            ),
+        ),
+    );
+
     protected function setUp()
     {
         $this->parser = new Parser();
@@ -33,6 +48,33 @@ protected function tearDown()
         $this->parser = null;
         $this->dumper = null;
         $this->path = null;
+        $this->array = null;
+    }
+
+    public function testSetIndentation()
+    {
+        $this->dumper->setIndentation(7);
+
+$expected = <<<EOF
+'': bar
+foo: '#bar'
+'foo''bar': {  }
+bar:
+       - 1
+       - foo
+foobar:
+       foo: bar
+       bar:
+              - 1
+              - foo
+       foobar:
+              foo: bar
+              bar:
+                     - 1
+                     - foo
+
+EOF;
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 4, 0));
     }
 
     public function testSpecifications()
@@ -63,27 +105,11 @@ public function testSpecifications()
 
     public function testInlineLevel()
     {
-        // inline level
-        $array = array(
-            '' => 'bar',
-            'foo' => '#bar',
-            'foo\'bar' => array(),
-            'bar' => array(1, 'foo'),
-            'foobar' => array(
-                'foo' => 'bar',
-                'bar' => array(1, 'foo'),
-                'foobar' => array(
-                    'foo' => 'bar',
-                    'bar' => array(1, 'foo'),
-                ),
-            ),
-        );
-
         $expected = <<<EOF
 { '': bar, foo: '#bar', 'foo''bar': {  }, bar: [1, foo], foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } } }
 EOF;
-$this->assertEquals($expected, $this->dumper->dump($array, -10), '->dump() takes an inline level argument');
-$this->assertEquals($expected, $this->dumper->dump($array, 0), '->dump() takes an inline level argument');
+$this->assertEquals($expected, $this->dumper->dump($this->array, -10), '->dump() takes an inline level argument');
+$this->assertEquals($expected, $this->dumper->dump($this->array, 0), '->dump() takes an inline level argument');
 
 $expected = <<<EOF
 '': bar
@@ -93,7 +119,7 @@ public function testInlineLevel()
 foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } }
 
 EOF;
-        $this->assertEquals($expected, $this->dumper->dump($array, 1), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 1), '->dump() takes an inline level argument');
 
         $expected = <<<EOF
 '': bar
@@ -108,7 +134,7 @@ public function testInlineLevel()
     foobar: { foo: bar, bar: [1, foo] }
 
 EOF;
-        $this->assertEquals($expected, $this->dumper->dump($array, 2), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 2), '->dump() takes an inline level argument');
 
         $expected = <<<EOF
 '': bar
@@ -127,7 +153,7 @@ public function testInlineLevel()
         bar: [1, foo]
 
 EOF;
-        $this->assertEquals($expected, $this->dumper->dump($array, 3), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 3), '->dump() takes an inline level argument');
 
         $expected = <<<EOF
 '': bar
@@ -148,8 +174,8 @@ public function testInlineLevel()
             - foo
 
 EOF;
-        $this->assertEquals($expected, $this->dumper->dump($array, 4), '->dump() takes an inline level argument');
-        $this->assertEquals($expected, $this->dumper->dump($array, 10), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 4), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 10), '->dump() takes an inline level argument');
     }
 
     public function testObjectSupportEnabled()
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
index 231a37b7d158..ca69aec153a6 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
@@ -113,17 +113,33 @@ public function getBlockChompingTests()
 foo: |-
     one
     two
+bar: |-
+    one
+    two
+
+EOF;
+        $expected = array(
+            'foo' => "one\ntwo",
+            'bar' => "one\ntwo",
+        );
+        $tests['Literal block chomping strip with single trailing newline'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: |-
+    one
+    two
 
 bar: |-
     one
     two
 
+
 EOF;
         $expected = array(
             'foo' => "one\ntwo",
             'bar' => "one\ntwo",
         );
-        $tests['Literal block chomping strip with trailing newline'] = array($expected, $yaml);
+        $tests['Literal block chomping strip with multiple trailing newlines'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: |-
@@ -143,7 +159,6 @@ public function getBlockChompingTests()
 foo: |
     one
     two
-
 bar: |
     one
     two
@@ -153,37 +168,70 @@ public function getBlockChompingTests()
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo\n",
         );
-        $tests['Literal block chomping clip with trailing newline'] = array($expected, $yaml);
+        $tests['Literal block chomping clip with single trailing newline'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: |
     one
     two
+
 bar: |
     one
     two
+
+
 EOF;
         $expected = array(
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo\n",
         );
+        $tests['Literal block chomping clip with multiple trailing newlines'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: |
+    one
+    two
+bar: |
+    one
+    two
+EOF;
+        $expected = array(
+            'foo' => "one\ntwo\n",
+            'bar' => "one\ntwo",
+        );
         $tests['Literal block chomping clip without trailing newline'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: |+
     one
     two
+bar: |+
+    one
+    two
+
+EOF;
+        $expected = array(
+            'foo' => "one\ntwo\n",
+            'bar' => "one\ntwo\n",
+        );
+        $tests['Literal block chomping keep with single trailing newline'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: |+
+    one
+    two
 
 bar: |+
     one
     two
 
+
 EOF;
         $expected = array(
             'foo' => "one\ntwo\n\n",
             'bar' => "one\ntwo\n\n",
         );
-        $tests['Literal block chomping keep with trailing newline'] = array($expected, $yaml);
+        $tests['Literal block chomping keep with multiple trailing newlines'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: |+
@@ -195,7 +243,7 @@ public function getBlockChompingTests()
 EOF;
         $expected = array(
             'foo' => "one\ntwo\n",
-            'bar' => "one\ntwo\n",
+            'bar' => "one\ntwo",
         );
         $tests['Literal block chomping keep without trailing newline'] = array($expected, $yaml);
 
@@ -203,17 +251,33 @@ public function getBlockChompingTests()
 foo: >-
     one
     two
+bar: >-
+    one
+    two
+
+EOF;
+        $expected = array(
+            'foo' => "one two",
+            'bar' => "one two",
+        );
+        $tests['Folded block chomping strip with single trailing newline'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: >-
+    one
+    two
 
 bar: >-
     one
     two
 
+
 EOF;
         $expected = array(
             'foo' => "one two",
             'bar' => "one two",
         );
-        $tests['Folded block chomping strip with trailing newline'] = array($expected, $yaml);
+        $tests['Folded block chomping strip with multiple trailing newlines'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: >-
@@ -233,7 +297,6 @@ public function getBlockChompingTests()
 foo: >
     one
     two
-
 bar: >
     one
     two
@@ -243,37 +306,70 @@ public function getBlockChompingTests()
             'foo' => "one two\n",
             'bar' => "one two\n",
         );
-        $tests['Folded block chomping clip with trailing newline'] = array($expected, $yaml);
+        $tests['Folded block chomping clip with single trailing newline'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: >
     one
     two
+
 bar: >
     one
     two
+
+
 EOF;
         $expected = array(
             'foo' => "one two\n",
             'bar' => "one two\n",
         );
+        $tests['Folded block chomping clip with multiple trailing newlines'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: >
+    one
+    two
+bar: >
+    one
+    two
+EOF;
+        $expected = array(
+            'foo' => "one two\n",
+            'bar' => "one two",
+        );
         $tests['Folded block chomping clip without trailing newline'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: >+
     one
     two
+bar: >+
+    one
+    two
+
+EOF;
+        $expected = array(
+            'foo' => "one two\n",
+            'bar' => "one two\n",
+        );
+        $tests['Folded block chomping keep with single trailing newline'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: >+
+    one
+    two
 
 bar: >+
     one
     two
 
+
 EOF;
         $expected = array(
             'foo' => "one two\n\n",
             'bar' => "one two\n\n",
         );
-        $tests['Folded block chomping keep with trailing newline'] = array($expected, $yaml);
+        $tests['Folded block chomping keep with multiple trailing newlines'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: >+
@@ -285,7 +381,7 @@ public function getBlockChompingTests()
 EOF;
         $expected = array(
             'foo' => "one two\n",
-            'bar' => "one two\n",
+            'bar' => "one two",
         );
         $tests['Folded block chomping keep without trailing newline'] = array($expected, $yaml);
 
diff --git a/core/vendor/twig/twig/CHANGELOG b/core/vendor/twig/twig/CHANGELOG
index 25513cff7e9f..6b2af3e058c0 100644
--- a/core/vendor/twig/twig/CHANGELOG
+++ b/core/vendor/twig/twig/CHANGELOG
@@ -1,3 +1,17 @@
+* 1.12.3 (2013-04-08)
+
+ * fixed a security issue in the filesystem loader where it was possible to include a template one
+   level above the configured path
+ * fixed fatal error that should be an exception when adding a filter/function/test too late
+ * added a batch filter
+ * added support for encoding an array as query string in the url_encode filter
+
+* 1.12.2 (2013-02-09)
+
+ * fixed the timezone used by the date filter and function when the given date contains a timezone (like 2010-01-28T15:00:00+02:00)
+ * fixed globals when getGlobals is called early on
+ * added the first and last filter
+
 * 1.12.1 (2013-01-15)
 
  * added support for object instances as the second argument of the constant function
@@ -375,7 +389,7 @@ Changes:
  * enhanced error messages when an unexpected token is parsed in an expression
  * fixed filename not being added to syntax error messages
  * added the autoescape option to enable/disable autoescaping
- * removed the newline after a comment (mimicks PHP behavior)
+ * removed the newline after a comment (mimics PHP behavior)
  * added a syntax error exception when parent block is used on a template that does not extend another one
  * made the Escaper extension enabled by default
  * fixed sandbox extension when used with auto output escaping
diff --git a/core/vendor/twig/twig/doc/api.rst b/core/vendor/twig/twig/doc/api.rst
index 9160c3f32a3f..dbba7059ddf9 100644
--- a/core/vendor/twig/twig/doc/api.rst
+++ b/core/vendor/twig/twig/doc/api.rst
@@ -312,9 +312,9 @@ Twig comes bundled with the following extensions:
   to escape/unescape blocks of code.
 
 * *Twig_Extension_Sandbox*: Adds a sandbox mode to the default Twig
-  environment, making it safe to evaluated untrusted code.
+  environment, making it safe to evaluate untrusted code.
 
-* *Twig_Extension_Optimizer*: Optimizers the node tree before compilation.
+* *Twig_Extension_Optimizer*: Optimizes the node tree before compilation.
 
 The core, escaper, and optimizer extensions do not need to be added to the
 Twig environment, as they are registered by default.
@@ -334,80 +334,10 @@ Core Extension
 
 The ``core`` extension defines all the core features of Twig:
 
-* Tags:
-
-  * ``for``
-  * ``if``
-  * ``extends``
-  * ``include``
-  * ``block``
-  * ``filter``
-  * ``macro``
-  * ``import``
-  * ``from``
-  * ``set``
-  * ``spaceless``
-  * ``autoescape``
-  * ``do``
-  * ``embed``
-  * ``flush``
-  * ``verbatim``
-  * ``sandbox``
-  * ``use``
-
-* Filters:
-
-  * ``date``
-  * ``format``
-  * ``replace``
-  * ``url_encode``
-  * ``json_encode``
-  * ``title``
-  * ``capitalize``
-  * ``upper``
-  * ``lower``
-  * ``striptags``
-  * ``join``
-  * ``reverse``
-  * ``length``
-  * ``sort``
-  * ``merge``
-  * ``default``
-  * ``keys``
-  * ``escape``
-  * ``e``
-  * ``abs``
-  * ``convert_encoding``
-  * ``date_modify``
-  * ``nl2br``
-  * ``number_format``
-  * ``raw``
-  * ``slice``
-  * ``trim``
-
-* Functions:
-
-  * ``range``
-  * ``constant``
-  * ``cycle``
-  * ``parent``
-  * ``block``
-  * ``attribute``
-  * ``date``
-  * ``dump``
-  * ``random``
-
-* Tests:
-
-  * ``even``
-  * ``odd``
-  * ``defined``
-  * ``sameas``
-  * ``null``
-  * ``divisibleby``
-  * ``constant``
-  * ``empty``
-  * ``iterable``
+* :doc:`Tags <tags/index>`;
+* :doc:`Filters <filters/index>`;
+* :doc:`Functions <functions/index>`;
+* :doc:`Tests <tests/index>`.
 
 Escaper Extension
 ~~~~~~~~~~~~~~~~~
@@ -566,6 +496,20 @@ to enable by passing them to the constructor::
 
     $twig->addExtension($optimizer);
 
+Twig supports the following optimizations:
+
+* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_ALL``, enables all optimizations
+(this is the default value).
+* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_NONE``, disables all optimizations.
+This reduces the compilation time, but it can increase the execution time
+and the consumed memory.
+* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_FOR``, optimizes the ``for`` tag by
+removing the ``loop`` variable creation whenever possible.
+* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_RAW_FILTER``, removes the ``raw``
+filter whenever possible.
+* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_VAR_ACCESS``, simplifies the creation
+and access of variables in the compiled templates whenever possible.
+
 Exceptions
 ----------
 
diff --git a/core/vendor/twig/twig/doc/filters/batch.rst b/core/vendor/twig/twig/doc/filters/batch.rst
new file mode 100644
index 000000000000..4366b57b09ed
--- /dev/null
+++ b/core/vendor/twig/twig/doc/filters/batch.rst
@@ -0,0 +1,45 @@
+``batch``
+=========
+
+.. versionadded:: 1.12.3
+    The batch filter was added in Twig 1.12.3.
+
+The ``batch`` filter "batches" items by returning a list of lists with the
+given number of items. If you provide a second parameter, it is used to fill
+missing items:
+
+.. code-block:: jinja
+
+    {% set items = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] %}
+
+    <table>
+    {% for row in items|batch(3, 'No item') %}
+      <tr>
+      {% for column in row %}
+        <td>{{ column }}</td>
+      {% endfor %}
+      </tr>
+    {% endfor %}
+    </table>
+
+The above example will be rendered as:
+
+.. code-block:: jinja
+
+    <table>
+      <tr>
+          <td>a</td>
+          <td>b</td>
+          <td>c</td>
+        </tr>
+      <tr>
+          <td>d</td>
+          <td>e</td>
+          <td>f</td>
+        </tr>
+      <tr>
+          <td>g</td>
+          <td>No item</td>
+          <td>No item</td>
+        </tr>
+    </table>
diff --git a/core/vendor/twig/twig/doc/filters/first.rst b/core/vendor/twig/twig/doc/filters/first.rst
new file mode 100644
index 000000000000..4295e83340cd
--- /dev/null
+++ b/core/vendor/twig/twig/doc/filters/first.rst
@@ -0,0 +1,25 @@
+``first``
+=========
+
+.. versionadded:: 1.12.2
+    The first filter was added in Twig 1.12.2.
+
+The ``first`` filter returns the first "element" of a sequence, a mapping, or
+a string:
+
+.. code-block:: jinja
+
+    {{ [1, 2, 3, 4]|first }}
+    {# outputs 1 #}
+
+    {{ { a: 1, b: 2, c: 3, d: 4 }|first }}
+    {# outputs 1 #}
+
+    {{ '1234'|first }}
+    {# outputs 1 #}
+
+.. note::
+
+    It also works with objects implementing the `Traversable`_ interface.
+
+.. _`Traversable`: http://php.net/manual/en/class.traversable.php
diff --git a/core/vendor/twig/twig/doc/filters/index.rst b/core/vendor/twig/twig/doc/filters/index.rst
index e29e3ae3de55..b0c6b38d05bc 100644
--- a/core/vendor/twig/twig/doc/filters/index.rst
+++ b/core/vendor/twig/twig/doc/filters/index.rst
@@ -4,30 +4,33 @@ Filters
 .. toctree::
     :maxdepth: 1
 
+    abs
+    batch
+    capitalize
+    convert_encoding
     date
     date_modify
+    default
+    escape
+    first
     format
-    replace
-    number_format
-    url_encode
+    join
     json_encode
-    convert_encoding
-    title
-    capitalize
+    keys
+    last
+    length
+    lower
     nl2br
+    number_format
+    merge
     upper
-    lower
-    striptags
-    join
-    split
-    reverse
-    abs
-    length
-    sort
-    default
-    keys
-    escape
     raw
-    merge
+    replace
+    reverse
     slice
+    sort
+    split
+    striptags
+    title
     trim
+    url_encode
diff --git a/core/vendor/twig/twig/doc/filters/json_encode.rst b/core/vendor/twig/twig/doc/filters/json_encode.rst
index 374f51980d38..a33fef1b7301 100644
--- a/core/vendor/twig/twig/doc/filters/json_encode.rst
+++ b/core/vendor/twig/twig/doc/filters/json_encode.rst
@@ -14,6 +14,8 @@ The ``json_encode`` filter returns the JSON representation of a string:
 Arguments
 ---------
 
- * ``options``: The options
+ * ``options``: A bitmask of `json_encode options`_ (``{{
+   data|json_encode(constant(JSON_PRETTY_PRINT)) }}``)
 
 .. _`json_encode`: http://php.net/json_encode
+.. _`json_encode options`: http://www.php.net/manual/en/json.constants.php
diff --git a/core/vendor/twig/twig/doc/filters/last.rst b/core/vendor/twig/twig/doc/filters/last.rst
new file mode 100644
index 000000000000..723c0b57e98e
--- /dev/null
+++ b/core/vendor/twig/twig/doc/filters/last.rst
@@ -0,0 +1,25 @@
+``last``
+========
+
+.. versionadded:: 1.12.2
+    The last filter was added in Twig 1.12.2.
+
+The ``last`` filter returns the last "element" of a sequence, a mapping, or
+a string:
+
+.. code-block:: jinja
+
+    {{ [1, 2, 3, 4]|last }}
+    {# outputs 4 #}
+
+    {{ { a: 1, b: 2, c: 3, d: 4 }|last }}
+    {# outputs 4 #}
+
+    {{ '1234'|last }}
+    {# outputs 4 #}
+
+.. note::
+
+    It also works with objects implementing the `Traversable`_ interface.
+
+.. _`Traversable`: http://php.net/manual/en/class.traversable.php
diff --git a/core/vendor/twig/twig/doc/filters/merge.rst b/core/vendor/twig/twig/doc/filters/merge.rst
index 4348e7a163eb..05a2ae7d0eea 100644
--- a/core/vendor/twig/twig/doc/filters/merge.rst
+++ b/core/vendor/twig/twig/doc/filters/merge.rst
@@ -1,7 +1,7 @@
 ``merge``
 =========
 
-The ``merge`` filter merges an array with the another array:
+The ``merge`` filter merges an array with another array:
 
 .. code-block:: jinja
 
diff --git a/core/vendor/twig/twig/doc/filters/sort.rst b/core/vendor/twig/twig/doc/filters/sort.rst
index 0e330d27307e..33311528fb2d 100644
--- a/core/vendor/twig/twig/doc/filters/sort.rst
+++ b/core/vendor/twig/twig/doc/filters/sort.rst
@@ -5,7 +5,7 @@ The ``sort`` filter sorts an array:
 
 .. code-block:: jinja
 
-    {% for use in users|sort %}
+    {% for user in users|sort %}
         ...
     {% endfor %}
 
diff --git a/core/vendor/twig/twig/doc/filters/striptags.rst b/core/vendor/twig/twig/doc/filters/striptags.rst
index 5ccca45cccd2..72c6f252f77f 100644
--- a/core/vendor/twig/twig/doc/filters/striptags.rst
+++ b/core/vendor/twig/twig/doc/filters/striptags.rst
@@ -6,7 +6,7 @@ by one space:
 
 .. code-block:: jinja
 
-    {% some_html|striptags %}
+    {{ some_html|striptags }}
 
 .. note::
 
diff --git a/core/vendor/twig/twig/doc/filters/url_encode.rst b/core/vendor/twig/twig/doc/filters/url_encode.rst
index c141f3b7318e..d3a33fd45830 100644
--- a/core/vendor/twig/twig/doc/filters/url_encode.rst
+++ b/core/vendor/twig/twig/doc/filters/url_encode.rst
@@ -1,14 +1,23 @@
 ``url_encode``
 ==============
 
-The ``url_encode`` filter URL encodes a given string:
+.. versionadded:: 1.12.3
+    Support for encoding an array as query string was added in Twig 1.12.3.
+
+The ``url_encode`` filter percent encodes a given string as URL segment
+or an array as query string:
 
 .. code-block:: jinja
 
-    {{ data|url_encode() }}
+    {{ "path-seg*ment"|url_encode }}
+    {# outputs "path-seg%2Ament" #}
+
+    {{ {'param': 'value', 'foo': 'bar'}|url_encode }}
+    {# outputs "param=value&foo=bar" #}
 
 .. note::
 
-    Internally, Twig uses the PHP `urlencode`_ function.
+    Internally, Twig uses the PHP `urlencode`_ or the `http_build_query`_ function.
 
 .. _`urlencode`: http://php.net/urlencode
+.. _`http_build_query`: http://php.net/http_build_query
diff --git a/core/vendor/twig/twig/doc/functions/index.rst b/core/vendor/twig/twig/doc/functions/index.rst
index c5ac896391c5..8650cbdba6f8 100644
--- a/core/vendor/twig/twig/doc/functions/index.rst
+++ b/core/vendor/twig/twig/doc/functions/index.rst
@@ -4,14 +4,14 @@ Functions
 .. toctree::
     :maxdepth: 1
 
-    range
-    cycle
-    constant
-    random
     attribute
     block
-    parent
-    dump
+    constant
+    cycle
     date
-    template_from_string
+    dump
     include
+    parent
+    random
+    range
+    template_from_string
diff --git a/core/vendor/twig/twig/doc/functions/template_from_string.rst b/core/vendor/twig/twig/doc/functions/template_from_string.rst
index 6df650e3f51d..bbb06d8640d9 100644
--- a/core/vendor/twig/twig/doc/functions/template_from_string.rst
+++ b/core/vendor/twig/twig/doc/functions/template_from_string.rst
@@ -8,8 +8,8 @@ The ``template_from_string`` function loads a template from a string:
 
 .. code-block:: jinja
 
-    {% include template_from_string("Hello {{ name }}") %}
-    {% include template_from_string(page.template) %}
+    {{ include(template_from_string("Hello {{ name }}") }}
+    {{ include(template_from_string(page.template)) }}
 
 .. note::
 
@@ -23,7 +23,7 @@ The ``template_from_string`` function loads a template from a string:
 .. note::
 
     Even if you will probably always use the ``template_from_string`` function
-    with the ``include`` tag, you can use it with any tag or function that
+    with the ``include`` function, you can use it with any tag or function that
     takes a template as an argument (like the ``embed`` or ``extends`` tags).
 
 Arguments
diff --git a/core/vendor/twig/twig/doc/intro.rst b/core/vendor/twig/twig/doc/intro.rst
index 69ffe643a317..57a4ca8d9d4b 100644
--- a/core/vendor/twig/twig/doc/intro.rst
+++ b/core/vendor/twig/twig/doc/intro.rst
@@ -29,32 +29,10 @@ Twig needs at least **PHP 5.2.4** to run.
 Installation
 ------------
 
-You have multiple ways to install Twig. If you are unsure what to do, go with
-the tarball.
+You have multiple ways to install Twig.
 
-Installing from the tarball release
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-1. Download the most recent tarball from the `download page`_
-2. Unpack the tarball
-3. Move the files somewhere in your project
-
-Installing the development version
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-1. Install Subversion or Git
-2. For Git: ``git clone git://github.com/fabpot/Twig.git``
-3. For Subversion: ``svn co http://svn.twig-project.org/trunk/ twig``
-
-Installing the PEAR package
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-1. Install PEAR
-2. ``pear channel-discover pear.twig-project.org``
-3. ``pear install twig/Twig`` (or ``pear install twig/Twig-beta``)
-
-Installing via Composer
-~~~~~~~~~~~~~~~~~~~~~~~
+Installing via Composer (recommended)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 1. Install composer in your project:
 
@@ -82,6 +60,27 @@ Installing via Composer
     If you want to learn more about Composer, the ``composer.json`` file syntax
     and its usage, you can read the `online documentation`_.
 
+Installing from the tarball release
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Download the most recent tarball from the `download page`_
+2. Unpack the tarball
+3. Move the files somewhere in your project
+
+Installing the development version
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Install Git
+2. ``git clone git://github.com/fabpot/Twig.git``
+
+Installing the PEAR package
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Install PEAR
+2. ``pear channel-discover pear.twig-project.org``
+3. ``pear install twig/Twig`` (or ``pear install twig/Twig-beta``)
+
+
 Installing the C extension
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -112,7 +111,7 @@ PHP code but only provides an optimized version of the
 
 .. tip::
 
-    On Windows, you can also simply download and install a `pre-build DLL`_.
+    On Windows, you can also simply download and install a `pre-built DLL`_.
 
 Basic API Usage
 ---------------
diff --git a/core/vendor/twig/twig/doc/recipes.rst b/core/vendor/twig/twig/doc/recipes.rst
index 6ece40dcef6b..dfcc9205160e 100644
--- a/core/vendor/twig/twig/doc/recipes.rst
+++ b/core/vendor/twig/twig/doc/recipes.rst
@@ -106,9 +106,10 @@ To change the block delimiters, you need to create your own lexer object::
     $twig = new Twig_Environment();
 
     $lexer = new Twig_Lexer($twig, array(
-        'tag_comment'  => array('{#', '#}'),
-        'tag_block'    => array('{%', '%}'),
-        'tag_variable' => array('{{', '}}'),
+        'tag_comment'   => array('{#', '#}'),
+        'tag_block'     => array('{%', '%}'),
+        'tag_variable'  => array('{{', '}}'),
+        'interpolation' => array('#{', '}'),
     ));
     $twig->setLexer($lexer);
 
diff --git a/core/vendor/twig/twig/doc/tags/for.rst b/core/vendor/twig/twig/doc/tags/for.rst
index 722861ab57a7..0673b5511515 100644
--- a/core/vendor/twig/twig/doc/tags/for.rst
+++ b/core/vendor/twig/twig/doc/tags/for.rst
@@ -155,3 +155,18 @@ You can also access both keys and values:
             <li>{{ key }}: {{ user.username|e }}</li>
         {% endfor %}
     </ul>
+
+Iterating over a Subset
+-----------------------
+
+You might want to iterate over a subset of values. This can be achieved using
+the :doc:`slice <../filters/slice>` filter:
+
+.. code-block:: jinja
+
+    <h1>Top Ten Members</h1>
+    <ul>
+        {% for user in users|slice(0, 10) %}
+            <li>{{ user.username|e }}</li>
+        {% endfor %}
+    </ul>
diff --git a/core/vendor/twig/twig/doc/tags/index.rst b/core/vendor/twig/twig/doc/tags/index.rst
index 6dbc55038ab1..64e886448579 100644
--- a/core/vendor/twig/twig/doc/tags/index.rst
+++ b/core/vendor/twig/twig/doc/tags/index.rst
@@ -4,21 +4,21 @@ Tags
 .. toctree::
     :maxdepth: 1
 
+    autoescape
+    block
+    filter
+    do
+    embed
+    extends
+    flush
     for
+    from
     if
+    import
+    include
     macro
-    filter
+    sandbox
     set
-    extends
-    block
-    include
-    import
-    from
-    use
     spaceless
-    autoescape
+    use
     verbatim
-    flush
-    do
-    sandbox
-    embed
diff --git a/core/vendor/twig/twig/doc/templates.rst b/core/vendor/twig/twig/doc/templates.rst
index a23fcb60864f..94eb9f9906ee 100644
--- a/core/vendor/twig/twig/doc/templates.rst
+++ b/core/vendor/twig/twig/doc/templates.rst
@@ -217,7 +217,7 @@ the values you pass as arguments:
     {{ data|convert_encoding(from='iso-2022-jp', to='UTF-8') }}
 
 Named arguments also allow you to skip some arguments for which you don't want
-to change the default value::
+to change the default value:
 
 .. code-block:: jinja
 
@@ -446,6 +446,8 @@ By default, the ``escape`` filter uses the ``html`` strategy, but depending on
 the escaping context, you might want to explicitly use any other available
 strategies:
 
+.. code-block:: jinja
+
     {{ user.username|e('js') }}
     {{ user.username|e('css') }}
     {{ user.username|e('url') }}
@@ -567,8 +569,9 @@ exist:
 
 * ``"Hello World"``: Everything between two double or single quotes is a
   string. They are useful whenever you need a string in the template (for
-  example as arguments to function calls, filters or just to extend or
-  include a template).
+  example as arguments to function calls, filters or just to extend or include
+  a template). A string can contain a delimiter if it is preceded by a
+  backslash (``\``) -- like in ``'It\'s good'``.
 
 * ``42`` / ``42.23``: Integers and floating point numbers are created by just
   writing the number down. If a dot is present the number is a float,
diff --git a/core/vendor/twig/twig/doc/tests/index.rst b/core/vendor/twig/twig/doc/tests/index.rst
index 7b8c535657bc..c63208ee74de 100644
--- a/core/vendor/twig/twig/doc/tests/index.rst
+++ b/core/vendor/twig/twig/doc/tests/index.rst
@@ -4,12 +4,12 @@ Tests
 .. toctree::
     :maxdepth: 1
 
-    divisibleby
-    null
-    even
-    odd
-    sameas
     constant
     defined
+    divisibleby
     empty
+    even
     iterable
+    null
+    odd
+    sameas
diff --git a/core/vendor/twig/twig/ext/twig/php_twig.h b/core/vendor/twig/twig/ext/twig/php_twig.h
index 1508b0eff916..0a11224744ad 100644
--- a/core/vendor/twig/twig/ext/twig/php_twig.h
+++ b/core/vendor/twig/twig/ext/twig/php_twig.h
@@ -15,7 +15,7 @@
 #ifndef PHP_TWIG_H
 #define PHP_TWIG_H
 
-#define PHP_TWIG_VERSION "1.12.1"
+#define PHP_TWIG_VERSION "1.12.3"
 
 #include "php.h"
 
diff --git a/core/vendor/twig/twig/ext/twig/twig.c b/core/vendor/twig/twig/ext/twig/twig.c
index f871d1ebad8c..bb8a151fd329 100644
--- a/core/vendor/twig/twig/ext/twig/twig.c
+++ b/core/vendor/twig/twig/ext/twig/twig.c
@@ -511,6 +511,7 @@ static int twig_add_array_key_to_string(void *pDest APPLY_TSRMLS_DC, int num_arg
 {
 	smart_str *buf;
 	char *joiner;
+	APPLY_TSRMLS_FETCH();
 
 	buf = va_arg(args, smart_str*);
 	joiner = va_arg(args, char*);
@@ -643,6 +644,7 @@ static int twig_add_method_to_class(void *pDest APPLY_TSRMLS_DC, int num_args, v
 	char *item;
 	size_t item_len;
 	zend_function *mptr = (zend_function *) pDest;
+	APPLY_TSRMLS_FETCH();
 
 	if (!(mptr->common.fn_flags & ZEND_ACC_PUBLIC)) {
 		return 0;
@@ -665,6 +667,7 @@ static int twig_add_property_to_class(void *pDest APPLY_TSRMLS_DC, int num_args,
 	zval *retval;
 	char *class_name, *prop_name;
 	zend_property_info *pptr = (zend_property_info *) pDest;
+	APPLY_TSRMLS_FETCH();
 
 	if (!(pptr->flags & ZEND_ACC_PUBLIC)) {
 		return 0;
diff --git a/core/vendor/twig/twig/lib/Twig/Autoloader.php b/core/vendor/twig/twig/lib/Twig/Autoloader.php
index 9bcec43c812d..d1e005b11fc9 100644
--- a/core/vendor/twig/twig/lib/Twig/Autoloader.php
+++ b/core/vendor/twig/twig/lib/Twig/Autoloader.php
@@ -12,8 +12,7 @@
 /**
  * Autoloads Twig classes.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Autoloader
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Compiler.php b/core/vendor/twig/twig/lib/Twig/Compiler.php
index 95b18699c6a0..99aecbcca57f 100644
--- a/core/vendor/twig/twig/lib/Twig/Compiler.php
+++ b/core/vendor/twig/twig/lib/Twig/Compiler.php
@@ -13,8 +13,7 @@
 /**
  * Compiles a node to PHP code.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Compiler implements Twig_CompilerInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/CompilerInterface.php b/core/vendor/twig/twig/lib/Twig/CompilerInterface.php
index db848a0385d7..e293ec9113b4 100644
--- a/core/vendor/twig/twig/lib/Twig/CompilerInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/CompilerInterface.php
@@ -12,8 +12,7 @@
 /**
  * Interface implemented by compiler classes.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_CompilerInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Environment.php b/core/vendor/twig/twig/lib/Twig/Environment.php
index eabbf0ada08c..0a4ff32ef78c 100644
--- a/core/vendor/twig/twig/lib/Twig/Environment.php
+++ b/core/vendor/twig/twig/lib/Twig/Environment.php
@@ -12,12 +12,11 @@
 /**
  * Stores the Twig configuration.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Environment
 {
-    const VERSION = '1.12.1';
+    const VERSION = '1.12.3';
 
     protected $charset;
     protected $loader;
@@ -263,7 +262,7 @@ public function getCacheFilename($name)
      */
     public function getTemplateClass($name, $index = null)
     {
-        return $this->templateClassPrefix.md5($this->loader->getCacheKey($name)).(null === $index ? '' : '_'.$index);
+        return $this->templateClassPrefix.md5($this->getLoader()->getCacheKey($name)).(null === $index ? '' : '_'.$index);
     }
 
     /**
@@ -318,10 +317,10 @@ public function loadTemplate($name, $index = null)
 
         if (!class_exists($cls, false)) {
             if (false === $cache = $this->getCacheFilename($name)) {
-                eval('?>'.$this->compileSource($this->loader->getSource($name), $name));
+                eval('?>'.$this->compileSource($this->getLoader()->getSource($name), $name));
             } else {
                 if (!is_file($cache) || ($this->isAutoReload() && !$this->isTemplateFresh($name, filemtime($cache)))) {
-                    $this->writeCacheFile($cache, $this->compileSource($this->loader->getSource($name), $name));
+                    $this->writeCacheFile($cache, $this->compileSource($this->getLoader()->getSource($name), $name));
                 }
 
                 require_once $cache;
@@ -356,7 +355,7 @@ public function isTemplateFresh($name, $time)
             }
         }
 
-        return $this->loader->isFresh($name, $time);
+        return $this->getLoader()->isFresh($name, $time);
     }
 
     public function resolveTemplate($names)
@@ -553,6 +552,10 @@ public function setLoader(Twig_LoaderInterface $loader)
      */
     public function getLoader()
     {
+        if (null === $this->loader) {
+            throw new LogicException('You must set a loader first.');
+        }
+
         return $this->loader;
     }
 
@@ -753,10 +756,6 @@ public function getNodeVisitors()
      */
     public function addFilter($name, $filter = null)
     {
-        if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to add filter "%s" as extensions have already been initialized.', $name));
-        }
-
         if (!$name instanceof Twig_SimpleFilter && !($filter instanceof Twig_SimpleFilter || $filter instanceof Twig_FilterInterface)) {
             throw new LogicException('A filter must be an instance of Twig_FilterInterface or Twig_SimpleFilter');
         }
@@ -765,7 +764,11 @@ public function addFilter($name, $filter = null)
             $filter = $name;
             $name = $filter->getName();
         }
-
+        
+        if ($this->extensionInitialized) {
+            throw new LogicException(sprintf('Unable to add filter "%s" as extensions have already been initialized.', $name));
+        }
+        
         $this->staging->addFilter($name, $filter);
     }
 
@@ -842,10 +845,6 @@ public function getFilters()
      */
     public function addTest($name, $test = null)
     {
-        if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to add test "%s" as extensions have already been initialized.', $name));
-        }
-
         if (!$name instanceof Twig_SimpleTest && !($test instanceof Twig_SimpleTest || $test instanceof Twig_TestInterface)) {
             throw new LogicException('A test must be an instance of Twig_TestInterface or Twig_SimpleTest');
         }
@@ -854,6 +853,10 @@ public function addTest($name, $test = null)
             $test = $name;
             $name = $test->getName();
         }
+        
+        if ($this->extensionInitialized) {
+            throw new LogicException(sprintf('Unable to add test "%s" as extensions have already been initialized.', $name));
+        }
 
         $this->staging->addTest($name, $test);
     }
@@ -900,10 +903,6 @@ public function getTest($name)
      */
     public function addFunction($name, $function = null)
     {
-        if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to add function "%s" as extensions have already been initialized.', $name));
-        }
-
         if (!$name instanceof Twig_SimpleFunction && !($function instanceof Twig_SimpleFunction || $function instanceof Twig_FunctionInterface)) {
             throw new LogicException('A function must be an instance of Twig_FunctionInterface or Twig_SimpleFunction');
         }
@@ -912,7 +911,11 @@ public function addFunction($name, $function = null)
             $function = $name;
             $name = $function->getName();
         }
-
+        
+        if ($this->extensionInitialized) {
+            throw new LogicException(sprintf('Unable to add function "%s" as extensions have already been initialized.', $name));
+        }
+        
         $this->staging->addFunction($name, $function);
     }
 
@@ -994,7 +997,7 @@ public function addGlobal($name, $value)
     {
         if ($this->extensionInitialized || $this->runtimeInitialized) {
             if (null === $this->globals) {
-                $this->initGlobals();
+                $this->globals = $this->initGlobals();
             }
 
             /* This condition must be uncommented in Twig 2.0
@@ -1019,8 +1022,12 @@ public function addGlobal($name, $value)
      */
     public function getGlobals()
     {
-        if (null === $this->globals || !($this->runtimeInitialized || $this->extensionInitialized)) {
-            $this->initGlobals();
+        if (!$this->runtimeInitialized && !$this->extensionInitialized) {
+            return $this->initGlobals();
+        }
+
+        if (null === $this->globals) {
+            $this->globals = $this->initGlobals();
         }
 
         return $this->globals;
@@ -1090,11 +1097,12 @@ public function computeAlternatives($name, $items)
 
     protected function initGlobals()
     {
-        $this->globals = array();
+        $globals = array();
         foreach ($this->extensions as $extension) {
-            $this->globals = array_merge($this->globals, $extension->getGlobals());
+            $globals = array_merge($globals, $extension->getGlobals());
         }
-        $this->globals = array_merge($this->globals, $this->staging->getGlobals());
+
+        return array_merge($globals, $this->staging->getGlobals());
     }
 
     protected function initExtensions()
diff --git a/core/vendor/twig/twig/lib/Twig/Error.php b/core/vendor/twig/twig/lib/Twig/Error.php
index 138151b770f9..e77ec98d75d3 100644
--- a/core/vendor/twig/twig/lib/Twig/Error.php
+++ b/core/vendor/twig/twig/lib/Twig/Error.php
@@ -29,8 +29,7 @@
  * can be disabled by passing false for both the filename and the line number
  * when creating a new instance of this class.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Error extends Exception
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Error/Loader.php b/core/vendor/twig/twig/lib/Twig/Error/Loader.php
index 7124974b8dc7..68efb574a1e6 100644
--- a/core/vendor/twig/twig/lib/Twig/Error/Loader.php
+++ b/core/vendor/twig/twig/lib/Twig/Error/Loader.php
@@ -20,8 +20,7 @@
  *
  * This strategy makes Twig_Environment::resolveTemplate() much faster.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Error_Loader extends Twig_Error
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Error/Runtime.php b/core/vendor/twig/twig/lib/Twig/Error/Runtime.php
index 8a387fa88d38..8b6ceddb9d8c 100644
--- a/core/vendor/twig/twig/lib/Twig/Error/Runtime.php
+++ b/core/vendor/twig/twig/lib/Twig/Error/Runtime.php
@@ -13,8 +13,7 @@
 /**
  * Exception thrown when an error occurs at runtime.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Error_Runtime extends Twig_Error
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Error/Syntax.php b/core/vendor/twig/twig/lib/Twig/Error/Syntax.php
index a2650c36eb08..0f5c5792883c 100644
--- a/core/vendor/twig/twig/lib/Twig/Error/Syntax.php
+++ b/core/vendor/twig/twig/lib/Twig/Error/Syntax.php
@@ -13,8 +13,7 @@
 /**
  * Exception thrown when a syntax error occurs during lexing or parsing of a template.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Error_Syntax extends Twig_Error
 {
diff --git a/core/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php b/core/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php
index 95fbeb0cb8c8..ce4347655076 100644
--- a/core/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php
@@ -12,8 +12,7 @@
 /**
  * Adds an exists() method for loaders.
  *
- * @package    twig
- * @author     Florin Patan <florinpatan@gmail.com>
+ * @author Florin Patan <florinpatan@gmail.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_ExistsLoaderInterface
diff --git a/core/vendor/twig/twig/lib/Twig/ExpressionParser.php b/core/vendor/twig/twig/lib/Twig/ExpressionParser.php
index 7b9114afa193..131c6c27d423 100644
--- a/core/vendor/twig/twig/lib/Twig/ExpressionParser.php
+++ b/core/vendor/twig/twig/lib/Twig/ExpressionParser.php
@@ -18,8 +18,7 @@
  * @see http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm
  * @see http://en.wikipedia.org/wiki/Operator-precedence_parser
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_ExpressionParser
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Core.php b/core/vendor/twig/twig/lib/Twig/Extension/Core.php
index 2110120ff8c5..26e7017d1243 100644
--- a/core/vendor/twig/twig/lib/Twig/Extension/Core.php
+++ b/core/vendor/twig/twig/lib/Twig/Extension/Core.php
@@ -152,11 +152,14 @@ public function getFilters()
             new Twig_SimpleFilter('split', 'twig_split_filter'),
             new Twig_SimpleFilter('sort', 'twig_sort_filter'),
             new Twig_SimpleFilter('merge', 'twig_array_merge'),
+            new Twig_SimpleFilter('batch', 'twig_array_batch'),
 
             // string/array filters
             new Twig_SimpleFilter('reverse', 'twig_reverse_filter', array('needs_environment' => true)),
             new Twig_SimpleFilter('length', 'twig_length_filter', array('needs_environment' => true)),
             new Twig_SimpleFilter('slice', 'twig_slice', array('needs_environment' => true)),
+            new Twig_SimpleFilter('first', 'twig_first', array('needs_environment' => true)),
+            new Twig_SimpleFilter('last', 'twig_last', array('needs_environment' => true)),
 
             // iteration and runtime
             new Twig_SimpleFilter('default', '_twig_default_filter', array('node_class' => 'Twig_Node_Expression_Filter_Default')),
@@ -168,8 +171,8 @@ public function getFilters()
         );
 
         if (function_exists('mb_get_info')) {
-            $filters['upper'] = new Twig_Filter_Function('twig_upper_filter', array('needs_environment' => true));
-            $filters['lower'] = new Twig_Filter_Function('twig_lower_filter', array('needs_environment' => true));
+            $filters[] = new Twig_SimpleFilter('upper', 'twig_upper_filter', array('needs_environment' => true));
+            $filters[] = new Twig_SimpleFilter('lower', 'twig_lower_filter', array('needs_environment' => true));
         }
 
         return $filters;
@@ -467,13 +470,15 @@ function twig_date_converter(Twig_Environment $env, $date = null, $timezone = nu
 
     $asString = (string) $date;
     if (ctype_digit($asString) || (!empty($asString) && '-' === $asString[0] && ctype_digit(substr($asString, 1)))) {
-        $date = new DateTime('@'.$date);
-        $date->setTimezone($defaultTimezone);
+        $date = '@'.$date;
+    }
 
-        return $date;
+    $date = new DateTime($date, $defaultTimezone);
+    if (false !== $timezone) {
+        $date->setTimezone($defaultTimezone);
     }
 
-    return new DateTime($date, $defaultTimezone);
+    return $date;
 }
 
 /**
@@ -510,15 +515,19 @@ function twig_number_format_filter(Twig_Environment $env, $number, $decimal = nu
 }
 
 /**
- * URL encodes a string.
+ * URL encodes a string as a path segment or an array as a query string.
  *
- * @param string $url A URL
- * @param bool   $raw true to use rawurlencode() instead of urlencode
+ * @param string|array $url A URL or an array of query parameters
+ * @param bool         $raw true to use rawurlencode() instead of urlencode
  *
  * @return string The URL encoded value
  */
 function twig_urlencode_filter($url, $raw = false)
 {
+    if (is_array($url)) {
+        return http_build_query($url, '', '&');
+    }
+
     if ($raw) {
         return rawurlencode($url);
     }
@@ -628,6 +637,36 @@ function twig_slice(Twig_Environment $env, $item, $start, $length = null, $prese
     return null === $length ? substr($item, $start) : substr($item, $start, $length);
 }
 
+/**
+ * Returns the first element of the item.
+ *
+ * @param Twig_Environment $env  A Twig_Environment instance
+ * @param mixed            $item A variable
+ *
+ * @return mixed The first element of the item
+ */
+function twig_first(Twig_Environment $env, $item)
+{
+    $elements = twig_slice($env, $item, 0, 1, false);
+
+    return is_string($elements) ? $elements[0] : current($elements);
+}
+
+/**
+ * Returns the last element of the item.
+ *
+ * @param Twig_Environment $env  A Twig_Environment instance
+ * @param mixed            $item A variable
+ *
+ * @return mixed The last element of the item
+ */
+function twig_last(Twig_Environment $env, $item)
+{
+    $elements = twig_slice($env, $item, -1, 1, false);
+
+    return is_string($elements) ? $elements[0] : current($elements);
+}
+
 /**
  * Joins the values to a string.
  *
@@ -1267,10 +1306,39 @@ function twig_include(Twig_Environment $env, $context, $template, $variables = a
  */
 function twig_constant($constant, $object = null)
 {
-    if (!$object) {
-        return constant($constant);
+    if (null !== $object) {
+        $constant = get_class($object).'::'.$constant;
+    }
+
+    return constant($constant);
+}
+
+/**
+ * Batches item.
+ *
+ * @param array   $items An array of items
+ * @param integer $size  The size of the batch
+ * @param string  $fill  A string to fill missing items
+ *
+ * @return array
+ */
+function twig_array_batch($items, $size, $fill = null)
+{
+    if ($items instanceof Traversable) {
+        $items = iterator_to_array($items, false);
+    }
+
+    $size = ceil($size);
+
+    $result = array_chunk($items, $size, true);
+
+    if (null !== $fill) {
+        $last = count($result) - 1;
+        $result[$last] = array_merge(
+            $result[$last],
+            array_fill(0, $size - count($result[$last]), $fill)
+        );
     }
-    $class = get_class($object);
 
-    return constant($class.'::'.$constant);
+    return $result;
 }
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Staging.php b/core/vendor/twig/twig/lib/Twig/Extension/Staging.php
index f67fc6576455..8ab0f4596082 100644
--- a/core/vendor/twig/twig/lib/Twig/Extension/Staging.php
+++ b/core/vendor/twig/twig/lib/Twig/Extension/Staging.php
@@ -14,8 +14,7 @@
  *
  * This class is used by Twig_Environment as a staging area and must not be used directly.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Extension_Staging extends Twig_Extension
 {
diff --git a/core/vendor/twig/twig/lib/Twig/ExtensionInterface.php b/core/vendor/twig/twig/lib/Twig/ExtensionInterface.php
index fe20a4ebf262..f189e9d9d09e 100644
--- a/core/vendor/twig/twig/lib/Twig/ExtensionInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/ExtensionInterface.php
@@ -12,8 +12,7 @@
 /**
  * Interface implemented by extension classes.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 interface Twig_ExtensionInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Filter.php b/core/vendor/twig/twig/lib/Twig/Filter.php
index 879ef672335c..189178851bb4 100644
--- a/core/vendor/twig/twig/lib/Twig/Filter.php
+++ b/core/vendor/twig/twig/lib/Twig/Filter.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFilter instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 abstract class Twig_Filter implements Twig_FilterInterface, Twig_FilterCallableInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Filter/Function.php b/core/vendor/twig/twig/lib/Twig/Filter/Function.php
index ae1f9613f3c2..ad374a551fe0 100644
--- a/core/vendor/twig/twig/lib/Twig/Filter/Function.php
+++ b/core/vendor/twig/twig/lib/Twig/Filter/Function.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFilter instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Filter_Function extends Twig_Filter
diff --git a/core/vendor/twig/twig/lib/Twig/Filter/Method.php b/core/vendor/twig/twig/lib/Twig/Filter/Method.php
index 074371abeeeb..63c8c3be4a5a 100644
--- a/core/vendor/twig/twig/lib/Twig/Filter/Method.php
+++ b/core/vendor/twig/twig/lib/Twig/Filter/Method.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFilter instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Filter_Method extends Twig_Filter
diff --git a/core/vendor/twig/twig/lib/Twig/Filter/Node.php b/core/vendor/twig/twig/lib/Twig/Filter/Node.php
index 4d27c939902d..8744c5e00dec 100644
--- a/core/vendor/twig/twig/lib/Twig/Filter/Node.php
+++ b/core/vendor/twig/twig/lib/Twig/Filter/Node.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFilter instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Filter_Node extends Twig_Filter
diff --git a/core/vendor/twig/twig/lib/Twig/FilterCallableInterface.php b/core/vendor/twig/twig/lib/Twig/FilterCallableInterface.php
index 97c7610ef526..145534dfdd61 100644
--- a/core/vendor/twig/twig/lib/Twig/FilterCallableInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/FilterCallableInterface.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFilter instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_FilterCallableInterface
diff --git a/core/vendor/twig/twig/lib/Twig/FilterInterface.php b/core/vendor/twig/twig/lib/Twig/FilterInterface.php
index 0c7f0a48e8a8..5319ecc9fc31 100644
--- a/core/vendor/twig/twig/lib/Twig/FilterInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/FilterInterface.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFilter instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_FilterInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Function.php b/core/vendor/twig/twig/lib/Twig/Function.php
index b30c30ee9514..b5ffb2b0475e 100644
--- a/core/vendor/twig/twig/lib/Twig/Function.php
+++ b/core/vendor/twig/twig/lib/Twig/Function.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFunction instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 abstract class Twig_Function implements Twig_FunctionInterface, Twig_FunctionCallableInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Function/Function.php b/core/vendor/twig/twig/lib/Twig/Function/Function.php
index 7e5c9c236c2e..d1e1b96a204b 100644
--- a/core/vendor/twig/twig/lib/Twig/Function/Function.php
+++ b/core/vendor/twig/twig/lib/Twig/Function/Function.php
@@ -15,8 +15,7 @@
  *
  * Use Twig_SimpleFunction instead.
  *
- * @package    twig
- * @author     Arnaud Le Blanc <arnaud.lb@gmail.com>
+ * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Function_Function extends Twig_Function
diff --git a/core/vendor/twig/twig/lib/Twig/Function/Method.php b/core/vendor/twig/twig/lib/Twig/Function/Method.php
index a13741eae1c2..67039a956a8a 100644
--- a/core/vendor/twig/twig/lib/Twig/Function/Method.php
+++ b/core/vendor/twig/twig/lib/Twig/Function/Method.php
@@ -15,8 +15,7 @@
  *
  * Use Twig_SimpleFunction instead.
  *
- * @package    twig
- * @author     Arnaud Le Blanc <arnaud.lb@gmail.com>
+ * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Function_Method extends Twig_Function
diff --git a/core/vendor/twig/twig/lib/Twig/Function/Node.php b/core/vendor/twig/twig/lib/Twig/Function/Node.php
index 068c5fd31ccb..06a0d0dbebfd 100644
--- a/core/vendor/twig/twig/lib/Twig/Function/Node.php
+++ b/core/vendor/twig/twig/lib/Twig/Function/Node.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFunction instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Function_Node extends Twig_Function
diff --git a/core/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php b/core/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php
index dfd6f7503171..0aab4f5ecf58 100644
--- a/core/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php
@@ -14,8 +14,7 @@
  *
  * Use Twig_SimpleFunction instead.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_FunctionCallableInterface
diff --git a/core/vendor/twig/twig/lib/Twig/FunctionInterface.php b/core/vendor/twig/twig/lib/Twig/FunctionInterface.php
index 1c03cbd2e09a..67f4f89c06a7 100644
--- a/core/vendor/twig/twig/lib/Twig/FunctionInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/FunctionInterface.php
@@ -15,8 +15,7 @@
  *
  * Use Twig_SimpleFunction instead.
  *
- * @package    twig
- * @author     Arnaud Le Blanc <arnaud.lb@gmail.com>
+ * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_FunctionInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Lexer.php b/core/vendor/twig/twig/lib/Twig/Lexer.php
index 3be72159dafe..000b038e60e8 100644
--- a/core/vendor/twig/twig/lib/Twig/Lexer.php
+++ b/core/vendor/twig/twig/lib/Twig/Lexer.php
@@ -13,8 +13,7 @@
 /**
  * Lexes a template string.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Lexer implements Twig_LexerInterface
 {
@@ -32,6 +31,7 @@ class Twig_Lexer implements Twig_LexerInterface
     protected $regexes;
     protected $position;
     protected $positions;
+    protected $currentVarBlockLine;
 
     const STATE_DATA            = 0;
     const STATE_BLOCK           = 1;
@@ -186,12 +186,14 @@ protected function lexData()
                 } else {
                     $this->pushToken(Twig_Token::BLOCK_START_TYPE);
                     $this->pushState(self::STATE_BLOCK);
+                    $this->currentVarBlockLine = $this->lineno;
                 }
                 break;
 
             case $this->options['tag_variable'][0]:
                 $this->pushToken(Twig_Token::VAR_START_TYPE);
                 $this->pushState(self::STATE_VAR);
+                $this->currentVarBlockLine = $this->lineno;
                 break;
         }
     }
@@ -225,7 +227,7 @@ protected function lexExpression()
             $this->moveCursor($match[0]);
 
             if ($this->cursor >= $this->end) {
-                throw new Twig_Error_Syntax(sprintf('Unexpected end of file: Unclosed "%s"', $this->state === self::STATE_BLOCK ? 'block' : 'variable'), $this->lineno, $this->filename);
+                throw new Twig_Error_Syntax(sprintf('Unclosed "%s"', $this->state === self::STATE_BLOCK ? 'block' : 'variable'), $this->currentVarBlockLine, $this->filename);
             }
         }
 
diff --git a/core/vendor/twig/twig/lib/Twig/LexerInterface.php b/core/vendor/twig/twig/lib/Twig/LexerInterface.php
index 6fd4db521af2..4b83f81b0f9b 100644
--- a/core/vendor/twig/twig/lib/Twig/LexerInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/LexerInterface.php
@@ -12,8 +12,7 @@
 /**
  * Interface implemented by lexer classes.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_LexerInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Loader/Array.php b/core/vendor/twig/twig/lib/Twig/Loader/Array.php
index e00910c60597..89087aeabf73 100644
--- a/core/vendor/twig/twig/lib/Twig/Loader/Array.php
+++ b/core/vendor/twig/twig/lib/Twig/Loader/Array.php
@@ -17,8 +17,7 @@
  * source code of the template). If you don't want to see your cache grows out of
  * control, you need to take care of clearing the old cache file by yourself.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Loader/Chain.php b/core/vendor/twig/twig/lib/Twig/Loader/Chain.php
index da61aca14bef..cd64b051da72 100644
--- a/core/vendor/twig/twig/lib/Twig/Loader/Chain.php
+++ b/core/vendor/twig/twig/lib/Twig/Loader/Chain.php
@@ -12,8 +12,7 @@
 /**
  * Loads templates from other loaders.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php b/core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php
index 8748e3d937f5..84a5e03aef59 100644
--- a/core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php
+++ b/core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php
@@ -12,8 +12,7 @@
 /**
  * Loads template from the filesystem.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
 {
@@ -204,6 +203,7 @@ protected function validateName($name)
             throw new Twig_Error_Loader('A template name cannot contain NUL bytes.');
         }
 
+        $name = ltrim($name, '/');
         $parts = explode('/', $name);
         $level = 0;
         foreach ($parts as $part) {
diff --git a/core/vendor/twig/twig/lib/Twig/Loader/String.php b/core/vendor/twig/twig/lib/Twig/Loader/String.php
index 6a4c0ab0b3f4..8ad9856cc08a 100644
--- a/core/vendor/twig/twig/lib/Twig/Loader/String.php
+++ b/core/vendor/twig/twig/lib/Twig/Loader/String.php
@@ -21,8 +21,7 @@
  * source code of the template). If you don't want to see your cache grows out of
  * control, you need to take care of clearing the old cache file by yourself.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Loader_String implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/LoaderInterface.php b/core/vendor/twig/twig/lib/Twig/LoaderInterface.php
index 3d69b141c8b6..927786d1af48 100644
--- a/core/vendor/twig/twig/lib/Twig/LoaderInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/LoaderInterface.php
@@ -12,8 +12,7 @@
 /**
  * Interface all loaders must implement.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 interface Twig_LoaderInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Markup.php b/core/vendor/twig/twig/lib/Twig/Markup.php
index 7099b2987ef5..69871fcbd047 100644
--- a/core/vendor/twig/twig/lib/Twig/Markup.php
+++ b/core/vendor/twig/twig/lib/Twig/Markup.php
@@ -12,8 +12,7 @@
 /**
  * Marks a content as safe.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Markup implements Countable
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node.php b/core/vendor/twig/twig/lib/Twig/Node.php
index 3048db502107..931b4635a940 100644
--- a/core/vendor/twig/twig/lib/Twig/Node.php
+++ b/core/vendor/twig/twig/lib/Twig/Node.php
@@ -13,8 +13,7 @@
 /**
  * Represents a node in the AST.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node implements Twig_NodeInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/AutoEscape.php b/core/vendor/twig/twig/lib/Twig/Node/AutoEscape.php
index a0c2ee6d80b6..8f190e0bd85f 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/AutoEscape.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/AutoEscape.php
@@ -18,8 +18,7 @@
  *
  * If autoescaping is disabled, then the value is false.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_AutoEscape extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Block.php b/core/vendor/twig/twig/lib/Twig/Node/Block.php
index 5548ad063e39..50eb67ed8c5a 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Block.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Block.php
@@ -13,8 +13,7 @@
 /**
  * Represents a block node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Block extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/BlockReference.php b/core/vendor/twig/twig/lib/Twig/Node/BlockReference.php
index 53f6287cc111..013e369ebe8c 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/BlockReference.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/BlockReference.php
@@ -13,8 +13,7 @@
 /**
  * Represents a block call node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_BlockReference extends Twig_Node implements Twig_NodeOutputInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Body.php b/core/vendor/twig/twig/lib/Twig/Node/Body.php
index f72bf506bd02..3ffb1342b745 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Body.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Body.php
@@ -12,8 +12,7 @@
 /**
  * Represents a body node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Body extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Do.php b/core/vendor/twig/twig/lib/Twig/Node/Do.php
index aa419d92e8d0..c528066b29f6 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Do.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Do.php
@@ -12,8 +12,7 @@
 /**
  * Represents a do node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Do extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Embed.php b/core/vendor/twig/twig/lib/Twig/Node/Embed.php
index 5edb953280a5..4c9456dc0594 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Embed.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Embed.php
@@ -12,8 +12,7 @@
 /**
  * Represents an embed node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Embed extends Twig_Node_Include
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression.php b/core/vendor/twig/twig/lib/Twig/Node/Expression.php
index 13b170e50f38..a7382e7d6eca 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression.php
@@ -13,8 +13,7 @@
 /**
  * Abstract class for all nodes that represents an expression.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 abstract class Twig_Node_Expression extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php
index 174d9097f5b7..647196eb5b8c 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php
@@ -13,8 +13,7 @@
 /**
  * Represents a block call node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_BlockReference extends Twig_Node_Expression
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php
index cb4efad02459..00ac6701f419 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php
@@ -12,8 +12,7 @@
 /**
  * Represents an extension call node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_ExtensionReference extends Twig_Node_Expression
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php
index fccd39aefac8..1827c888643f 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php
@@ -16,8 +16,7 @@
  *  {{ var.foo|default('foo item on var is not defined') }}
  * </pre>
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Filter_Default extends Twig_Node_Expression_Filter
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php
index ea9734946e15..dcf618c04a66 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php
@@ -13,8 +13,7 @@
 /**
  * Represents a parent node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Parent extends Twig_Node_Expression
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php
index 6e6b6fd7aaba..45b1e5da5aaa 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php
@@ -18,8 +18,7 @@
  *  {% endif %}
  * </pre>
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Test_Constant extends Twig_Node_Expression_Test
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php
index 915e60ad771f..85b07f59a5cf 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php
@@ -19,8 +19,7 @@
  * {% endif %}
  * </pre>
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Test_Defined extends Twig_Node_Expression_Test
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php
index 05563d5769b6..0aceb5302cb4 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php
@@ -16,8 +16,7 @@
  *  {% if loop.index is divisibleby(3) %}
  * </pre>
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Test_Divisibleby extends Twig_Node_Expression_Test
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php
index 08e6d829f4be..d7853e89c684 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php
@@ -16,8 +16,7 @@
  *  {{ var is even }}
  * </pre>
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Test_Even extends Twig_Node_Expression_Test
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php
index 55061db3f5e5..1c83825a005c 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php
@@ -16,8 +16,7 @@
  *  {{ var is none }}
  * </pre>
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Test_Null extends Twig_Node_Expression_Test
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php
index 5fecebcb1522..421c19e841e7 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php
@@ -16,8 +16,7 @@
  *  {{ var is odd }}
  * </pre>
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Test_Odd extends Twig_Node_Expression_Test
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php
index 8639b9650d18..b48905ee417a 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php
@@ -12,8 +12,7 @@
 /**
  * Checks if a variable is the same as another one (=== in PHP).
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Expression_Test_Sameas extends Twig_Node_Expression_Test
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Flush.php b/core/vendor/twig/twig/lib/Twig/Node/Flush.php
index 8f2ab9dbf7fd..0467ddcefc53 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Flush.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Flush.php
@@ -12,8 +12,7 @@
 /**
  * Represents a flush node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Flush extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/For.php b/core/vendor/twig/twig/lib/Twig/Node/For.php
index d9d25b3f2c97..20e543c251a5 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/For.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/For.php
@@ -13,8 +13,7 @@
 /**
  * Represents a for node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_For extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/ForLoop.php b/core/vendor/twig/twig/lib/Twig/Node/ForLoop.php
index 38f2e852b810..b8841583d970 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/ForLoop.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/ForLoop.php
@@ -12,8 +12,7 @@
 /**
  * Internal node used by the for node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_ForLoop extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/If.php b/core/vendor/twig/twig/lib/Twig/Node/If.php
index aa12efbec13a..4296a8d678fb 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/If.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/If.php
@@ -13,8 +13,7 @@
 /**
  * Represents an if node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_If extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Import.php b/core/vendor/twig/twig/lib/Twig/Node/Import.php
index a327411d6c7a..99efc0911c33 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Import.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Import.php
@@ -12,8 +12,7 @@
 /**
  * Represents an import node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Import extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Include.php b/core/vendor/twig/twig/lib/Twig/Node/Include.php
index 5b6be7a18804..ed4a3751250f 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Include.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Include.php
@@ -13,8 +13,7 @@
 /**
  * Represents an include node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Include extends Twig_Node implements Twig_NodeOutputInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Macro.php b/core/vendor/twig/twig/lib/Twig/Node/Macro.php
index 347e4b23e71d..89910618b872 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Macro.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Macro.php
@@ -12,8 +12,7 @@
 /**
  * Represents a macro node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Macro extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Module.php b/core/vendor/twig/twig/lib/Twig/Node/Module.php
index 4c7a107df134..585048b8a6fc 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Module.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Module.php
@@ -13,8 +13,7 @@
 /**
  * Represents a module node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Module extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Print.php b/core/vendor/twig/twig/lib/Twig/Node/Print.php
index 766725ff723b..b0c41d1d9211 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Print.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Print.php
@@ -13,8 +13,7 @@
 /**
  * Represents a node that outputs an expression.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Print extends Twig_Node implements Twig_NodeOutputInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Sandbox.php b/core/vendor/twig/twig/lib/Twig/Node/Sandbox.php
index cbfcb411b315..8cf3ed44f760 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Sandbox.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Sandbox.php
@@ -12,8 +12,7 @@
 /**
  * Represents a sandbox node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Sandbox extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/SandboxedModule.php b/core/vendor/twig/twig/lib/Twig/Node/SandboxedModule.php
index c1b3bcef397f..be1f5daa7329 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/SandboxedModule.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/SandboxedModule.php
@@ -13,8 +13,7 @@
 /**
  * Represents a module node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_SandboxedModule extends Twig_Node_Module
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php b/core/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php
index 77730d8c6257..73dfaa9639a5 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php
@@ -17,8 +17,7 @@
  * and if the sandbox is enabled, we need to check that the __toString()
  * method is allowed if 'article' is an object.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_SandboxedPrint extends Twig_Node_Print
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Set.php b/core/vendor/twig/twig/lib/Twig/Node/Set.php
index 70bb5196dc46..4c9c16ce2fb7 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Set.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Set.php
@@ -12,8 +12,7 @@
 /**
  * Represents a set node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Set extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Spaceless.php b/core/vendor/twig/twig/lib/Twig/Node/Spaceless.php
index 460134667166..7555fa0f1827 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Spaceless.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Spaceless.php
@@ -14,8 +14,7 @@
  *
  * It removes spaces between HTML tags.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Spaceless extends Twig_Node
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Text.php b/core/vendor/twig/twig/lib/Twig/Node/Text.php
index 0c1c0928f875..21bdcea1485e 100644
--- a/core/vendor/twig/twig/lib/Twig/Node/Text.php
+++ b/core/vendor/twig/twig/lib/Twig/Node/Text.php
@@ -13,8 +13,7 @@
 /**
  * Represents a text node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Node_Text extends Twig_Node implements Twig_NodeOutputInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/NodeInterface.php b/core/vendor/twig/twig/lib/Twig/NodeInterface.php
index 44b953befcd5..f0ef725825ce 100644
--- a/core/vendor/twig/twig/lib/Twig/NodeInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/NodeInterface.php
@@ -12,8 +12,7 @@
 /**
  * Represents a node in the AST.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_NodeInterface extends Countable, IteratorAggregate
diff --git a/core/vendor/twig/twig/lib/Twig/NodeOutputInterface.php b/core/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
index 71839569a5b9..22172c09db18 100644
--- a/core/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
@@ -12,8 +12,7 @@
 /**
  * Represents a displayable node in the AST.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 interface Twig_NodeOutputInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/NodeTraverser.php b/core/vendor/twig/twig/lib/Twig/NodeTraverser.php
index 1e82b032aded..28cba1ad57be 100644
--- a/core/vendor/twig/twig/lib/Twig/NodeTraverser.php
+++ b/core/vendor/twig/twig/lib/Twig/NodeTraverser.php
@@ -14,8 +14,7 @@
  *
  * It visits all nodes and their children and call the given visitor for each.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_NodeTraverser
 {
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php
index 0d749fe7ba68..cc4b3d717ad7 100644
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php
+++ b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php
@@ -12,8 +12,7 @@
 /**
  * Twig_NodeVisitor_Escaper implements output escaping.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_NodeVisitor_Escaper implements Twig_NodeVisitorInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php
index c9ad6bb545fe..a254def75be6 100644
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php
+++ b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php
@@ -17,8 +17,7 @@
  * You can configure which optimizations you want to activate via the
  * optimizer mode.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_NodeVisitor_Optimizer implements Twig_NodeVisitorInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php
index 1957f8a8d531..fb27045baaf1 100644
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php
+++ b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php
@@ -12,8 +12,7 @@
 /**
  * Twig_NodeVisitor_Sandbox implements sandboxing.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_NodeVisitor_Sandbox implements Twig_NodeVisitorInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php b/core/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
index f4974c670a4e..f33c13fc2265 100644
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
@@ -12,8 +12,7 @@
 /**
  * Twig_NodeVisitorInterface is the interface the all node visitor classes must implement.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 interface Twig_NodeVisitorInterface
 {
@@ -33,7 +32,7 @@ public function enterNode(Twig_NodeInterface $node, Twig_Environment $env);
      * @param Twig_NodeInterface $node The node to visit
      * @param Twig_Environment   $env  The Twig environment instance
      *
-     * @return Twig_NodeInterface The modified node
+     * @return Twig_NodeInterface|false The modified node or false if the node must be removed
      */
     public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env);
 
diff --git a/core/vendor/twig/twig/lib/Twig/Parser.php b/core/vendor/twig/twig/lib/Twig/Parser.php
index 1179913ca933..958e46b3dfa5 100644
--- a/core/vendor/twig/twig/lib/Twig/Parser.php
+++ b/core/vendor/twig/twig/lib/Twig/Parser.php
@@ -13,8 +13,7 @@
 /**
  * Default parser implementation.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Parser implements Twig_ParserInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/ParserInterface.php b/core/vendor/twig/twig/lib/Twig/ParserInterface.php
index 2783a68a5ff5..f0d790097ecd 100644
--- a/core/vendor/twig/twig/lib/Twig/ParserInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/ParserInterface.php
@@ -12,8 +12,7 @@
 /**
  * Interface implemented by parser classes.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_ParserInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php
index debabb7964d9..015bfaea22b6 100644
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php
+++ b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php
@@ -12,8 +12,7 @@
 /**
  * Exception thrown when a security error occurs at runtime.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Sandbox_SecurityError extends Twig_Error
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php
index ba912ef4af13..66ee233200b3 100644
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php
+++ b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php
@@ -12,8 +12,7 @@
 /**
  * Represents a security policy which need to be enforced when sandbox mode is enabled.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Sandbox_SecurityPolicy implements Twig_Sandbox_SecurityPolicyInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php
index 655b16be5a65..6ab48e3cc98d 100644
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php
@@ -12,8 +12,7 @@
 /**
  * Interfaces that all security policy classes must implements.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 interface Twig_Sandbox_SecurityPolicyInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/SimpleFilter.php b/core/vendor/twig/twig/lib/Twig/SimpleFilter.php
index 7089a9dfba9b..a6bf60f80c55 100644
--- a/core/vendor/twig/twig/lib/Twig/SimpleFilter.php
+++ b/core/vendor/twig/twig/lib/Twig/SimpleFilter.php
@@ -12,8 +12,7 @@
 /**
  * Represents a template filter.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_SimpleFilter
 {
diff --git a/core/vendor/twig/twig/lib/Twig/SimpleFunction.php b/core/vendor/twig/twig/lib/Twig/SimpleFunction.php
index 9924154ef0f1..8ef6aca2ff52 100644
--- a/core/vendor/twig/twig/lib/Twig/SimpleFunction.php
+++ b/core/vendor/twig/twig/lib/Twig/SimpleFunction.php
@@ -12,8 +12,7 @@
 /**
  * Represents a template function.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_SimpleFunction
 {
diff --git a/core/vendor/twig/twig/lib/Twig/SimpleTest.php b/core/vendor/twig/twig/lib/Twig/SimpleTest.php
index 7502c79eb77a..225459c9f129 100644
--- a/core/vendor/twig/twig/lib/Twig/SimpleTest.php
+++ b/core/vendor/twig/twig/lib/Twig/SimpleTest.php
@@ -12,8 +12,7 @@
 /**
  * Represents a template test.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_SimpleTest
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Template.php b/core/vendor/twig/twig/lib/Twig/Template.php
index a07862790c16..abc3400ee69b 100644
--- a/core/vendor/twig/twig/lib/Twig/Template.php
+++ b/core/vendor/twig/twig/lib/Twig/Template.php
@@ -13,8 +13,7 @@
 /**
  * Default base class for compiled templates.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 abstract class Twig_Template implements Twig_TemplateInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/TemplateInterface.php b/core/vendor/twig/twig/lib/Twig/TemplateInterface.php
index d2a2c398749e..879f503ec1d3 100644
--- a/core/vendor/twig/twig/lib/Twig/TemplateInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/TemplateInterface.php
@@ -12,8 +12,7 @@
 /**
  * Interface implemented by all compiled templates.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_TemplateInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Test.php b/core/vendor/twig/twig/lib/Twig/Test.php
index 7fef1b476a14..3baff88560fe 100644
--- a/core/vendor/twig/twig/lib/Twig/Test.php
+++ b/core/vendor/twig/twig/lib/Twig/Test.php
@@ -12,8 +12,7 @@
 /**
  * Represents a template test.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 abstract class Twig_Test implements Twig_TestInterface, Twig_TestCallableInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Test/Function.php b/core/vendor/twig/twig/lib/Twig/Test/Function.php
index d0ff4904be77..4be6b9b92427 100644
--- a/core/vendor/twig/twig/lib/Twig/Test/Function.php
+++ b/core/vendor/twig/twig/lib/Twig/Test/Function.php
@@ -12,8 +12,7 @@
 /**
  * Represents a function template test.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Test_Function extends Twig_Test
diff --git a/core/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php b/core/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php
index 2973dc5cb2bf..724f09417801 100644
--- a/core/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php
+++ b/core/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php
@@ -12,9 +12,8 @@
 /**
  * Integration test helper
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
- * @author  Karma Dordrak <drak@zikula.org>
+ * @author Fabien Potencier <fabien@symfony.com>
+ * @author Karma Dordrak <drak@zikula.org>
  */
 abstract class Twig_Test_IntegrationTestCase extends PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/twig/twig/lib/Twig/Test/Method.php b/core/vendor/twig/twig/lib/Twig/Test/Method.php
index 5a5f37f3d9ac..17c6c041d625 100644
--- a/core/vendor/twig/twig/lib/Twig/Test/Method.php
+++ b/core/vendor/twig/twig/lib/Twig/Test/Method.php
@@ -12,8 +12,7 @@
 /**
  * Represents a method template test.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Test_Method extends Twig_Test
diff --git a/core/vendor/twig/twig/lib/Twig/Test/Node.php b/core/vendor/twig/twig/lib/Twig/Test/Node.php
index eee48f93a312..c832a57bf424 100644
--- a/core/vendor/twig/twig/lib/Twig/Test/Node.php
+++ b/core/vendor/twig/twig/lib/Twig/Test/Node.php
@@ -12,8 +12,7 @@
 /**
  * Represents a template test as a Node.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_Test_Node extends Twig_Test
diff --git a/core/vendor/twig/twig/lib/Twig/TestCallableInterface.php b/core/vendor/twig/twig/lib/Twig/TestCallableInterface.php
index 18a9ca28e902..0db43682d042 100644
--- a/core/vendor/twig/twig/lib/Twig/TestCallableInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/TestCallableInterface.php
@@ -12,8 +12,7 @@
 /**
  * Represents a callable template test.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_TestCallableInterface
diff --git a/core/vendor/twig/twig/lib/Twig/TestInterface.php b/core/vendor/twig/twig/lib/Twig/TestInterface.php
index c1a21186d443..30d8a2c4f0a0 100644
--- a/core/vendor/twig/twig/lib/Twig/TestInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/TestInterface.php
@@ -12,8 +12,7 @@
 /**
  * Represents a template test.
  *
- * @package    twig
- * @author     Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_TestInterface
diff --git a/core/vendor/twig/twig/lib/Twig/Token.php b/core/vendor/twig/twig/lib/Twig/Token.php
index 7f58e560326b..bbca90dbbfdc 100644
--- a/core/vendor/twig/twig/lib/Twig/Token.php
+++ b/core/vendor/twig/twig/lib/Twig/Token.php
@@ -13,8 +13,7 @@
 /**
  * Represents a Token.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Token
 {
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser.php b/core/vendor/twig/twig/lib/Twig/TokenParser.php
index ab18bfae16e3..decebd5eead6 100644
--- a/core/vendor/twig/twig/lib/Twig/TokenParser.php
+++ b/core/vendor/twig/twig/lib/Twig/TokenParser.php
@@ -12,8 +12,7 @@
 /**
  * Base class for all token parsers.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 abstract class Twig_TokenParser implements Twig_TokenParserInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Do.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Do.php
index 593d1c6dc1cd..f50939dd214e 100644
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Do.php
+++ b/core/vendor/twig/twig/lib/Twig/TokenParser/Do.php
@@ -10,7 +10,7 @@
  */
 
 /**
- * Evaluates an expression, disgarding the returned value.
+ * Evaluates an expression, discarding the returned value.
  */
 class Twig_TokenParser_Do extends Twig_TokenParser
 {
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Set.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Set.php
index 6dbd1db1a292..70e0b41baeee 100644
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Set.php
+++ b/core/vendor/twig/twig/lib/Twig/TokenParser/Set.php
@@ -49,7 +49,7 @@ public function parse(Twig_Token $token)
             $stream->expect(Twig_Token::BLOCK_END_TYPE);
 
             if (count($names) !== count($values)) {
-                throw new Twig_Error_Syntax("When using set, you must have the same number of variables and assignements.", $stream->getCurrent()->getLine(), $stream->getFilename());
+                throw new Twig_Error_Syntax("When using set, you must have the same number of variables and assignments.", $stream->getCurrent()->getLine(), $stream->getFilename());
             }
         } else {
             $capture = true;
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParserBroker.php b/core/vendor/twig/twig/lib/Twig/TokenParserBroker.php
index 23474de3789b..9518c7c8a2af 100644
--- a/core/vendor/twig/twig/lib/Twig/TokenParserBroker.php
+++ b/core/vendor/twig/twig/lib/Twig/TokenParserBroker.php
@@ -13,8 +13,7 @@
 /**
  * Default implementation of a token parser broker.
  *
- * @package    twig
- * @author     Arnaud Le Blanc <arnaud.lb@gmail.com>
+ * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 class Twig_TokenParserBroker implements Twig_TokenParserBrokerInterface
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php b/core/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php
index ac7e7cdeab83..3f006e339bf9 100644
--- a/core/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php
@@ -15,8 +15,7 @@
  *
  * Token parser brokers allows to implement custom logic in the process of resolving a token parser for a given tag name.
  *
- * @package    twig
- * @author     Arnaud Le Blanc <arnaud.lb@gmail.com>
+ * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
  * @deprecated since 1.12 (to be removed in 2.0)
  */
 interface Twig_TokenParserBrokerInterface
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParserInterface.php b/core/vendor/twig/twig/lib/Twig/TokenParserInterface.php
index 2b6c2ac2aac1..bbde77141030 100644
--- a/core/vendor/twig/twig/lib/Twig/TokenParserInterface.php
+++ b/core/vendor/twig/twig/lib/Twig/TokenParserInterface.php
@@ -12,8 +12,7 @@
 /**
  * Interface implemented by token parsers.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 interface Twig_TokenParserInterface
 {
diff --git a/core/vendor/twig/twig/lib/Twig/TokenStream.php b/core/vendor/twig/twig/lib/Twig/TokenStream.php
index fcb10eb7d760..a78189f667a6 100644
--- a/core/vendor/twig/twig/lib/Twig/TokenStream.php
+++ b/core/vendor/twig/twig/lib/Twig/TokenStream.php
@@ -13,8 +13,7 @@
 /**
  * Represents a token stream.
  *
- * @package twig
- * @author  Fabien Potencier <fabien@symfony.com>
+ * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_TokenStream
 {
diff --git a/core/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php b/core/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php
index fc2cef8b1485..664e98039361 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php
+++ b/core/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php
@@ -11,6 +11,16 @@
 
 class Twig_Tests_EnvironmentTest extends PHPUnit_Framework_TestCase
 {
+    /**
+     * @expectedException        LogicException
+     * @expectedExceptionMessage You must set a loader first.
+     */
+    public function testRenderNoLoader()
+    {
+        $env = new Twig_Environment();
+        $env->render('test');
+    }
+
     public function testAutoescapeOption()
     {
         $loader = new Twig_Loader_Array(array(
@@ -71,6 +81,12 @@ public function testGlobals()
         $globals = $twig->getGlobals();
         $this->assertEquals('bar', $globals['foo']);
 
+        $twig = new Twig_Environment(new Twig_Loader_String());
+        $twig->getGlobals();
+        $twig->addGlobal('foo', 'bar');
+        $template = $twig->loadTemplate('{{foo}}');
+        $this->assertEquals('bar', $template->render(array()));
+
         /* to be uncomment in Twig 2.0
         // globals cannot be added after runtime init
         $twig = new Twig_Environment(new Twig_Loader_String());
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch.test
new file mode 100644
index 000000000000..cb6de7f97e96
--- /dev/null
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch.test
@@ -0,0 +1,31 @@
+--TEST--
+"batch" filter
+--TEMPLATE--
+{% for row in items|batch(3) %}
+  <div class=row>
+  {% for column in row %}
+    <div class=item>{{ column }}</div>
+  {% endfor %}
+  </div>
+{% endfor %}
+--DATA--
+return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
+--EXPECT--
+<div class=row>
+      <div class=item>a</div>
+      <div class=item>b</div>
+      <div class=item>c</div>
+    </div>
+  <div class=row>
+      <div class=item>d</div>
+      <div class=item>e</div>
+      <div class=item>f</div>
+    </div>
+  <div class=row>
+      <div class=item>g</div>
+      <div class=item>h</div>
+      <div class=item>i</div>
+    </div>
+  <div class=row>
+      <div class=item>j</div>
+    </div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_float.php b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_float.php
new file mode 100644
index 000000000000..52de39cb767b
--- /dev/null
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_float.php
@@ -0,0 +1,31 @@
+--TEST--
+"batch" filter
+--TEMPLATE--
+{% for row in items|batch(3.1) %}
+  <div class=row>
+  {% for column in row %}
+    <div class=item>{{ column }}</div>
+  {% endfor %}
+  </div>
+{% endfor %}
+--DATA--
+return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
+--EXPECT--
+<div class=row>
+      <div class=item>a</div>
+      <div class=item>b</div>
+      <div class=item>c</div>
+    </div>
+  <div class=row>
+      <div class=item>d</div>
+      <div class=item>e</div>
+      <div class=item>f</div>
+    </div>
+  <div class=row>
+      <div class=item>g</div>
+      <div class=item>h</div>
+      <div class=item>i</div>
+    </div>
+  <div class=row>
+      <div class=item>j</div>
+    </div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_empty_fill.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_empty_fill.test
new file mode 100644
index 000000000000..af996f2469b0
--- /dev/null
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_empty_fill.test
@@ -0,0 +1,37 @@
+--TEST--
+"batch" filter
+--TEMPLATE--
+<table>
+{% for row in items|batch(3, '') %}
+  <tr>
+  {% for column in row %}
+    <td>{{ column }}</td>
+  {% endfor %}
+  </tr>
+{% endfor %}
+</table>
+--DATA--
+return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
+--EXPECT--
+<table>
+  <tr>
+      <td>a</td>
+      <td>b</td>
+      <td>c</td>
+    </tr>
+  <tr>
+      <td>d</td>
+      <td>e</td>
+      <td>f</td>
+    </tr>
+  <tr>
+      <td>g</td>
+      <td>h</td>
+      <td>i</td>
+    </tr>
+  <tr>
+      <td>j</td>
+      <td></td>
+      <td></td>
+    </tr>
+</table>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_fill.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_fill.test
new file mode 100644
index 000000000000..746295f1b244
--- /dev/null
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_fill.test
@@ -0,0 +1,37 @@
+--TEST--
+"batch" filter
+--TEMPLATE--
+<table>
+{% for row in items|batch(3, 'fill') %}
+  <tr>
+  {% for column in row %}
+    <td>{{ column }}</td>
+  {% endfor %}
+  </tr>
+{% endfor %}
+</table>
+--DATA--
+return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
+--EXPECT--
+<table>
+  <tr>
+      <td>a</td>
+      <td>b</td>
+      <td>c</td>
+    </tr>
+  <tr>
+      <td>d</td>
+      <td>e</td>
+      <td>f</td>
+    </tr>
+  <tr>
+      <td>g</td>
+      <td>h</td>
+      <td>i</td>
+    </tr>
+  <tr>
+      <td>j</td>
+      <td>fill</td>
+      <td>fill</td>
+    </tr>
+</table>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date.test
index f40f4cb9d767..d40bb04adf0d 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date.test
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date.test
@@ -3,59 +3,74 @@
 --TEMPLATE--
 {{ date1|date }}
 {{ date1|date('d/m/Y') }}
-{{ date1|date('d/m/Y H:i:s', 'Europe/Paris') }}
-{{ date1|date('d/m/Y H:i:s P', 'Europe/Paris') }}
+{{ date1|date('d/m/Y H:i:s', 'Asia/Hong_Kong') }}
+{{ date1|date('d/m/Y H:i:s P', 'Asia/Hong_Kong') }}
 {{ date1|date('d/m/Y H:i:s P', 'America/Chicago') }}
 {{ date1|date('e') }}
 {{ date1|date('d/m/Y H:i:s') }}
+
 {{ date2|date }}
 {{ date2|date('d/m/Y') }}
-{{ date2|date('d/m/Y H:i:s', 'Europe/Paris') }}
+{{ date2|date('d/m/Y H:i:s', 'Asia/Hong_Kong') }}
 {{ date2|date('d/m/Y H:i:s', timezone1) }}
 {{ date2|date('d/m/Y H:i:s') }}
+
 {{ date3|date }}
 {{ date3|date('d/m/Y') }}
+
 {{ date4|date }}
 {{ date4|date('d/m/Y') }}
+
 {{ date5|date }}
 {{ date5|date('d/m/Y') }}
+
 {{ date6|date('d/m/Y H:i:s P', 'Europe/Paris') }}
 {{ date6|date('d/m/Y H:i:s P', 'Asia/Hong_Kong') }}
 {{ date6|date('d/m/Y H:i:s P', false) }}
 {{ date6|date('e', 'Europe/Paris') }}
 {{ date6|date('e', false) }}
+
+{{ date7|date }}
 --DATA--
-date_default_timezone_set('UTC');
+date_default_timezone_set('Europe/Paris');
 return array(
     'date1' => mktime(13, 45, 0, 10, 4, 2010),
     'date2' => new DateTime('2010-10-04 13:45'),
     'date3' => '2010-10-04 13:45',
-    'date4' => 1286199900,
-    'date5' => -86410,
+    'date4' => 1286199900, // DateTime::createFromFormat('Y-m-d H:i', '2010-10-04 13:45', new DateTimeZone('UTC'))->getTimestamp() -- A unixtimestamp is always GMT
+    'date5' => -189291360, // DateTime::createFromFormat('Y-m-d H:i', '1964-01-02 03:04', new DateTimeZone('UTC'))->getTimestamp(),
     'date6' => new DateTime('2010-10-04 13:45', new DateTimeZone('America/New_York')),
+    'date7' => '2010-01-28T15:00:00+05:00',
     'timezone1' => new DateTimeZone('America/New_York'),
 )
 --EXPECT--
 October 4, 2010 13:45
 04/10/2010
-04/10/2010 15:45:00
-04/10/2010 15:45:00 +02:00
-04/10/2010 08:45:00 -05:00
-UTC
+04/10/2010 19:45:00
+04/10/2010 19:45:00 +08:00
+04/10/2010 06:45:00 -05:00
+Europe/Paris
 04/10/2010 13:45:00
+
 October 4, 2010 13:45
 04/10/2010
-04/10/2010 15:45:00
-04/10/2010 09:45:00
+04/10/2010 19:45:00
+04/10/2010 07:45:00
 04/10/2010 13:45:00
+
 October 4, 2010 13:45
 04/10/2010
-October 4, 2010 13:45
+
+October 4, 2010 15:45
 04/10/2010
-December 30, 1969 23:59
-30/12/1969
+
+January 2, 1964 04:04
+02/01/1964
+
 04/10/2010 19:45:00 +02:00
 05/10/2010 01:45:00 +08:00
 04/10/2010 13:45:00 -04:00
 Europe/Paris
 America/New_York
+
+January 28, 2010 11:00
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test
new file mode 100644
index 000000000000..853465b62b43
--- /dev/null
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test
@@ -0,0 +1,14 @@
+--TEST--
+"first" filter
+--TEMPLATE--
+{{ [1, 2, 3, 4]|first }}
+{{ {a: 1, b: 2, c: 3, d: 4}|first }}
+{{ '1234'|first }}
+{{ arr|first }}
+--DATA--
+return array('arr' => new ArrayObject(array(1, 2, 3, 4)))
+--EXPECT--
+1
+1
+1
+1
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/last.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/last.test
new file mode 100644
index 000000000000..ca3ac0cf8ead
--- /dev/null
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/last.test
@@ -0,0 +1,14 @@
+--TEST--
+"last" filter
+--TEMPLATE--
+{{ [1, 2, 3, 4]|last }}
+{{ {a: 1, b: 2, c: 3, d: 4}|last }}
+{{ '1234'|last }}
+{{ arr|last }}
+--DATA--
+return array('arr' => new ArrayObject(array(1, 2, 3, 4)))
+--EXPECT--
+4
+4
+4
+4
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode.test
new file mode 100644
index 000000000000..de956e7a30b9
--- /dev/null
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode.test
@@ -0,0 +1,12 @@
+--TEST--
+"url_encode" filter
+--TEMPLATE--
+{{ {foo: "bar", number: 3, "spéßi%l": "e%c0d@d", "spa ce": ""}|url_encode }}
+{{ {foo: "bar", number: 3, "spéßi%l": "e%c0d@d", "spa ce": ""}|url_encode|raw }}
+{{ {}|url_encode|default("default") }}
+--DATA--
+return array()
+--EXPECT--
+foo=bar&amp;number=3&amp;sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&amp;spa+ce=
+foo=bar&number=3&sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&spa+ce=
+default
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date.test
index caeee7a28eca..a4c97167d3cf 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date.test
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date.test
@@ -7,14 +7,15 @@
 {{ date(date2) == date('2010-10-04 13:45') ? 'OK' : 'KO' }}
 {{ date(date3) == date('2010-10-04 13:45') ? 'OK' : 'KO' }}
 {{ date(date4) == date('2010-10-04 13:45') ? 'OK' : 'KO' }}
+{{ date(date5) == date('1964-01-02 03:04') ? 'OK' : 'KO' }}
 --DATA--
 date_default_timezone_set('UTC');
 return array(
     'date1' => mktime(13, 45, 0, 10, 4, 2010),
     'date2' => new DateTime('2010-10-04 13:45'),
     'date3' => '2010-10-04 13:45',
-    'date4' => 1286199900,
-    'date5' => -86410,
+    'date4' => 1286199900, // DateTime::createFromFormat('Y-m-d H:i', '2010-10-04 13:45', new DateTimeZone('UTC'))->getTimestamp() -- A unixtimestamp is always GMT
+    'date5' => -189291360, // DateTime::createFromFormat('Y-m-d H:i', '1964-01-02 03:04', new DateTimeZone('UTC'))->getTimestamp(),
 )
 --EXPECT--
 OK
@@ -23,3 +24,4 @@ OK
 OK
 OK
 OK
+OK
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test
index 775bfd091cd4..e389d4dd536d 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test
+++ b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test
@@ -9,7 +9,7 @@
 2. Conditional expression with only literals
 {{ true ? "<br />" : "<br>" }}
 
-3. Conditonal expression with a variable
+3. Conditional expression with a variable
 {{ true ? "<br />" : someVar }}
 
 4. Nested conditionals with only literals
@@ -32,7 +32,7 @@ return array()
 2. Conditional expression with only literals
 <br />
 
-3. Conditonal expression with a variable
+3. Conditional expression with a variable
 &lt;br /&gt;
 
 4. Nested conditionals with only literals
diff --git a/core/vendor/twig/twig/test/Twig/Tests/integrationTest.php b/core/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php
similarity index 100%
rename from core/vendor/twig/twig/test/Twig/Tests/integrationTest.php
rename to core/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php
diff --git a/core/vendor/twig/twig/test/Twig/Tests/LexerTest.php b/core/vendor/twig/twig/test/Twig/Tests/LexerTest.php
index ce878988d88e..34ed74fed739 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/LexerTest.php
+++ b/core/vendor/twig/twig/test/Twig/Tests/LexerTest.php
@@ -150,7 +150,21 @@ public function testBigNumbers()
         $this->assertEquals(922337203685477580700, $node->getValue());
     }
 
-    public function testString()
+    public function testStringWithEscapedDelimiter()
+    {
+        $tests = array(
+            "{{ 'foo \' bar' }}" => 'foo \' bar',
+            '{{ "foo \" bar" }}' => "foo \" bar",
+        );
+        $lexer = new Twig_Lexer(new Twig_Environment());
+        foreach ($tests as $template => $expected) {
+            $stream = $lexer->tokenize($template);
+            $stream->expect(Twig_Token::VAR_START_TYPE);
+            $stream->expect(Twig_Token::STRING_TYPE, $expected);
+        }
+    }
+
+    public function testStringWithInterpolation()
     {
         $template = 'foo {{ "bar #{ baz + 1 }" }}';
 
@@ -246,4 +260,42 @@ public function testOperatorEndingWithALetterAtTheEndOfALine()
         $stream->expect(Twig_Token::NUMBER_TYPE, 1);
         $stream->expect(Twig_Token::OPERATOR_TYPE, 'and');
     }
+
+    /**
+     * @expectedException Twig_Error_Syntax
+     * @expectedExceptionMessage Unclosed "variable" at line 3
+     */
+    public function testUnterminatedVariable()
+    {
+        $template = '
+
+{{
+
+bar
+
+
+';
+
+        $lexer = new Twig_Lexer(new Twig_Environment());
+        $stream = $lexer->tokenize($template);
+    }
+
+    /**
+     * @expectedException Twig_Error_Syntax
+     * @expectedExceptionMessage Unclosed "block" at line 3
+     */
+    public function testUnterminatedBlock()
+    {
+        $template = '
+
+{%
+
+bar
+
+
+';
+
+        $lexer = new Twig_Lexer(new Twig_Environment());
+        $stream = $lexer->tokenize($template);
+    }
 }
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/FilesystemTest.php b/core/vendor/twig/twig/test/Twig/Tests/Loader/FilesystemTest.php
index 9ea2d0e3a508..798e994af493 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/FilesystemTest.php
+++ b/core/vendor/twig/twig/test/Twig/Tests/Loader/FilesystemTest.php
@@ -47,6 +47,7 @@ public function getSecurityTests()
             array('filters\\..\\..\\AutoloaderTest.php'),
             array('filters\\\\..\\\\..\\\\AutoloaderTest.php'),
             array('filters\\//../\\/\\..\\AutoloaderTest.php'),
+            array('/../AutoloaderTest.php'),
         );
     }
 
diff --git a/core/vendor/twig/twig/test/Twig/Tests/ParserTest.php b/core/vendor/twig/twig/test/Twig/Tests/ParserTest.php
index 9c757eebe99b..55eb7fb4ee46 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/ParserTest.php
+++ b/core/vendor/twig/twig/test/Twig/Tests/ParserTest.php
@@ -23,7 +23,7 @@ public function testSetMacroThrowsExceptionOnReservedMethods()
      * @expectedException        Twig_Error_Syntax
      * @expectedExceptionMessage Unknown tag name "foo". Did you mean "for" at line 1
      */
-    public function testUnkownTag()
+    public function testUnknownTag()
     {
         $stream = new Twig_TokenStream(array(
             new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', 1),
diff --git a/core/vendor/twig/twig/test/Twig/Tests/TemplateTest.php b/core/vendor/twig/twig/test/Twig/Tests/TemplateTest.php
index 448bdf895646..7b821dc354e5 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/TemplateTest.php
+++ b/core/vendor/twig/twig/test/Twig/Tests/TemplateTest.php
@@ -67,7 +67,7 @@ public function getAttributeExceptions()
     public function testGetAttributeWithSandbox($object, $item, $allowed, $useExt)
     {
         $twig = new Twig_Environment();
-        $policy = new Twig_Sandbox_SecurityPolicy(array(), array(), array(/*methid*/), array(/*peop*/), array());
+        $policy = new Twig_Sandbox_SecurityPolicy(array(), array(), array(/*method*/), array(/*prop*/), array());
         $twig->addExtension(new Twig_Extension_Sandbox($policy, !$allowed));
         $template = new Twig_TemplateTest($twig, $useExt);
 
diff --git a/core/vendor/twig/twig/test/Twig/Tests/escapingTest.php b/core/vendor/twig/twig/test/Twig/Tests/escapingTest.php
index 2492b3acb98a..b41b5f972e3b 100644
--- a/core/vendor/twig/twig/test/Twig/Tests/escapingTest.php
+++ b/core/vendor/twig/twig/test/Twig/Tests/escapingTest.php
@@ -29,7 +29,7 @@ class Twig_Test_EscapingTest extends PHPUnit_Framework_TestCase
         '.'     => '.',
         '-'     => '-',
         '_'     => '_',
-        /* Basic alnums exluded */
+        /* Basic alnums excluded */
         'a'     => 'a',
         'A'     => 'A',
         'z'     => 'z',
@@ -63,7 +63,7 @@ class Twig_Test_EscapingTest extends PHPUnit_Framework_TestCase
         ','     => ',',
         '.'     => '.',
         '_'     => '_',
-        /* Basic alnums exluded */
+        /* Basic alnums excluded */
         'a'     => 'a',
         'A'     => 'A',
         'z'     => 'z',
@@ -127,7 +127,7 @@ class Twig_Test_EscapingTest extends PHPUnit_Framework_TestCase
         ','     => '\\2C ',
         '.'     => '\\2E ',
         '_'     => '\\5F ',
-        /* Basic alnums exluded */
+        /* Basic alnums excluded */
         'a'     => 'a',
         'A'     => 'A',
         'z'     => 'z',
-- 
GitLab