@ -29,7 +29,7 @@ $this->parameters = array_replace($this->parameters, $parameters); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function get($key, $default = null, $deep = false)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($deep) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					@trigger_error('Using paths to find deeper items in '.__METHOD__.' is deprecated since version  2.8 and will be removed in 3.0. Filter the returned value in your own code instead.', E_USER_DEPRECATED);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					@trigger_error('Using paths to find deeper items in '.__METHOD__.' is deprecated since Symfony  2.8 and will be removed in 3.0. Filter the returned value in your own code instead.', E_USER_DEPRECATED);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!$deep || false === $pos = strpos($key,'[')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return array_key_exists($key, $this->parameters) ? $this->parameters[$key] : $default;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -40,7 +40,7 @@ return $default; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$value = $this->parameters[$root];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$currentKey = null;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					for ($i = $pos, $c = strlen($key); $i < $c; ++$i) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					for ($i = $pos, $c = \ strlen($key); $i < $c; ++$i) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$char = $key[$i];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('['=== $char) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null !== $currentKey) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -51,7 +51,7 @@ $currentKey =''; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null === $currentKey) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					throw new \InvalidArgumentException(sprintf('Malformed path. Unexpected "]" at position %d.', $i));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!is_array($value) || !array_key_exists($currentKey, $value)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!\ is_array($value) || !array_key_exists($currentKey, $value)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $default;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$value = $value[$currentKey];  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -108,18 +108,18 @@ foreach (filter_list() as $tmp) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$filters[filter_id($tmp)] = 1;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (is_bool($filter) || !isset($filters[$filter]) || is_array($deep)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					@trigger_error('Passing the $deep boolean as 3rd argument to the '.__METHOD__.' method is deprecated since version  2.8 and will be removed in 3.0. Remove it altogether as the $deep argument will be removed in 3.0.', E_USER_DEPRECATED);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ is_bool($filter) || !isset($filters[$filter]) || \ is_array($deep)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					@trigger_error('Passing the $deep boolean as 3rd argument to the '.__METHOD__.' method is deprecated since Symfony  2.8 and will be removed in 3.0. Remove it altogether as the $deep argument will be removed in 3.0.', E_USER_DEPRECATED);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$tmp = $deep;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$deep = $filter;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$filter = $options;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$options = $tmp;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$value = $this->get($key, $default, $deep);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!is_array($options) && $options) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!\ is_array($options) && $options) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$options = array('flags'=> $options);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (is_array($value) && !isset($options['flags'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ is_array($value) && !isset($options['flags'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$options['flags'] = FILTER_REQUIRE_ARRAY;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return filter_var($value, $filter, $options);  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -130,7 +130,7 @@ return new \ArrayIterator($this->parameters); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function count()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return count($this->parameters);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return \ count($this->parameters);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -191,7 +191,7 @@ return $first ? null : array(); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $first ? $default : array($default);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($first) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return count($this->headers[$key]) ? $this->headers[$key][0] : $default;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return \ count($this->headers[$key]) ? $this->headers[$key][0] : $default;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $this->headers[$key];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -214,7 +214,7 @@ return array_key_exists(str_replace('_','-', strtolower($key)), $this->headers); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function contains($key, $value)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return in_array($value, $this->get($key, null, false));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return \ in_array($value, $this->get($key, null, false));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function remove($key)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -258,7 +258,7 @@ return new \ArrayIterator($this->headers); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function count()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return count($this->headers);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return \ count($this->headers);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					protected function getCacheControlHeader()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -304,7 +304,7 @@ $this->add($files); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function set($key, $value)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!is_array($value) && !$value instanceof UploadedFile) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!\ is_array($value) && !$value instanceof UploadedFile) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					throw new \InvalidArgumentException('An uploaded file must be an array or an instance of UploadedFile.');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					parent::set($key, $this->convertFileInformation($value));  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -321,7 +321,7 @@ if ($file instanceof UploadedFile) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $file;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$file = $this->fixPhpFilesArray($file);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (is_array($file)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ is_array($file)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$keys = array_keys($file);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					sort($keys);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($keys == self::$fileKeys) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -341,12 +341,12 @@ return $file; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					protected function fixPhpFilesArray($data)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!is_array($data)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!\ is_array($data)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $data;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$keys = array_keys($data);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					sort($keys);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (self::$fileKeys != $keys || !isset($data['name']) || !is_array($data['name'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (self::$fileKeys != $keys || !isset($data['name']) || !\ is_array($data['name'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $data;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$files = $data;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -390,7 +390,7 @@ $authorizationHeader = $this->parameters['REDIRECT_HTTP_AUTHORIZATION']; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null !== $authorizationHeader) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (0 === stripos($authorizationHeader,'basic ')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$exploded = explode(':', base64_decode(substr($authorizationHeader, 6)), 2);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (2 == count($exploded)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (2 == \ count($exploded)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					list($headers['PHP_AUTH_USER'], $headers['PHP_AUTH_PW']) = $exploded;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} elseif (empty($this->parameters['PHP_AUTH_DIGEST']) && (0 === stripos($authorizationHeader,'digest '))) {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -503,7 +503,7 @@ $this->format = null; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public static function createFromGlobals()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$server = $_SERVER;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('cli-server'=== PHP_SAPI) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('cli-server'=== \ PHP_SAPI) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (array_key_exists('HTTP_CONTENT_LENGTH', $_SERVER)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$server['CONTENT_LENGTH'] = $_SERVER['HTTP_CONTENT_LENGTH'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -513,7 +513,7 @@ $server['CONTENT_TYPE'] = $_SERVER['HTTP_CONTENT_TYPE']; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$request = self::createRequestFromFactory($_GET, $_POST, array(), $_COOKIE, $_FILES, $server);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (0 === strpos($request->headers->get('CONTENT_TYPE'),'application/x-www-form-urlencoded')  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					&& in_array(strtoupper($request->server->get('REQUEST_METHOD','GET')), array('PUT','DELETE','PATCH'))  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					&& \ in_array(strtoupper($request->server->get('REQUEST_METHOD','GET')), array('PUT','DELETE','PATCH'))  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					parse_str($request->getContent(), $data);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$request->request = new ParameterBag($data);  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -647,21 +647,30 @@ $content = $this->getContent(); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} catch (\LogicException $e) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return trigger_error($e, E_USER_ERROR);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$cookieHeader ='';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$cookies = array();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					foreach ($this->cookies as $k => $v) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$cookies[] = $k.'='.$v;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!empty($cookies)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$cookieHeader ='Cookie: '.implode('; ', $cookies)."\r\n";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					sprintf('%s %s %s', $this->getMethod(), $this->getRequestUri(), $this->server->get('SERVER_PROTOCOL'))."\r\n".  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->headers."\r\n".  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->headers.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$cookieHeader."\r\n".  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$content;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function overrideGlobals()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->server->set('QUERY_STRING', static::normalizeQueryString(http_build_query($this->query->all(), null,'&')));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->server->set('QUERY_STRING', static::normalizeQueryString(http_build_query($this->query->all(),'' ,'&')));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$_GET = $this->query->all();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$_POST = $this->request->all();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$_SERVER = $this->server->all();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$_COOKIE = $this->cookies->all();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					foreach ($this->headers->all() as $key => $value) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$key = strtoupper(str_replace('-','_', $key));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (in_array($key, array('CONTENT_TYPE','CONTENT_LENGTH'))) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ in_array($key, array('CONTENT_TYPE','CONTENT_LENGTH'))) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$_SERVER[$key] = implode(', ', $value);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$_SERVER['HTTP_'.$key] = implode(', ', $value);  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -686,7 +695,7 @@ return self::$trustedProxies; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public static function setTrustedHosts(array $hostPatterns)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					self::$trustedHostPatterns = array_map(function ($hostPattern) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return sprintf('#%s# i', $hostPattern);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return sprintf('{%s} i', $hostPattern);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}, $hostPatterns);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					self::$trustedHosts = array();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -739,7 +748,7 @@ return self::$httpMethodParameterOverride; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function get($key, $default = null, $deep = false)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($deep) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					@trigger_error('Using paths to find deeper items in '.__METHOD__.' is deprecated since version  2.8 and will be removed in 3.0. Filter the returned value in your own code instead.', E_USER_DEPRECATED);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					@trigger_error('Using paths to find deeper items in '.__METHOD__.' is deprecated since Symfony  2.8 and will be removed in 3.0. Filter the returned value in your own code instead.', E_USER_DEPRECATED);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($this !== $result = $this->query->get($key, $this, $deep)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $result;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -897,7 +906,7 @@ break; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$targetDirs[] = $targetFile;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$path = str_repeat('../', count($sourceDirs)).implode('/', $targetDirs);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$path = str_repeat('../', \ count($sourceDirs)).implode('/', $targetDirs);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return !isset($path[0]) ||'/'=== $path[0]  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					|| false !== ($colonPos = strpos($path,':')) && ($colonPos < ($slashPos = strpos($path,'/')) || false === $slashPos)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					? "./$path" : $path;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -910,7 +919,7 @@ return''=== $qs ? null : $qs; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function isSecure()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($this->isFromTrustedProxy() && $proto = $this->getTrustedValues(self::HEADER_CLIENT_PROTO)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return in_array(strtolower($proto[0]), array('https','on','ssl','1'), true);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return \ in_array(strtolower($proto[0]), array('https','on','ssl','1'), true);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$https = $this->server->get('HTTPS');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return !empty($https) &&'off'!== strtolower($https);  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -928,8 +937,8 @@ $host = strtolower(preg_replace('/:\d+$/','', trim($host))); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($host &&''!== preg_replace('/(?:^\[)?[a-zA-Z0-9-:\]_]+\.?/','', $host)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					throw new \UnexpectedValueException(sprintf('Invalid Host "%s"', $host));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (count(self::$trustedHostPatterns) > 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (in_array($host, self::$trustedHosts)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ count(self::$trustedHostPatterns) > 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ in_array($host, self::$trustedHosts)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $host;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					foreach (self::$trustedHostPatterns as $pattern) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -955,7 +964,10 @@ if ('POST'=== $this->method) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($method = $this->headers->get('X-HTTP-METHOD-OVERRIDE')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->method = strtoupper($method);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} elseif (self::$httpMethodParameterOverride) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->method = strtoupper($this->request->get('_method', $this->query->get('_method','POST')));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$method = $this->request->get('_method', $this->query->get('_method','POST'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\is_string($method)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->method = strtoupper($method);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -982,10 +994,10 @@ if (null === static::$formats) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static::initializeFormats();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					foreach (static::$formats as $format => $mimeTypes) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (in_array($mimeType, (array) $mimeTypes)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ in_array($mimeType, (array) $mimeTypes)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $format;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null !== $canonicalMimeType && in_array($canonicalMimeType, (array) $mimeTypes)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null !== $canonicalMimeType && \ in_array($canonicalMimeType, (array) $mimeTypes)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $format;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -995,7 +1007,7 @@ public function setFormat($format, $mimeTypes) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null === static::$formats) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static::initializeFormats();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static::$formats[$format] = is_array($mimeTypes) ? $mimeTypes : array($mimeTypes);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static::$formats[$format] = \ is_array($mimeTypes) ? $mimeTypes : array($mimeTypes);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function getRequestFormat($default ='html')  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1037,15 +1049,15 @@ return $this->getMethod() === strtoupper($method); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function isMethodSafe()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return in_array($this->getMethod(), 0 < func_num_args() && !func_get_arg(0) ? array('GET','HEAD','OPTIONS','TRACE') : array('GET','HEAD'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return \ in_array($this->getMethod(), 0 < \ func_num_args() && !func_get_arg(0) ? array('GET','HEAD','OPTIONS','TRACE') : array('GET','HEAD'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function isMethodCacheable()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return in_array($this->getMethod(), array('GET','HEAD'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return \ in_array($this->getMethod(), array('GET','HEAD'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public function getContent($asResource = false)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$currentContentIsResource = is_resource($this->content);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$currentContentIsResource = \ is_resource($this->content);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\PHP_VERSION_ID < 50600 && false === $this->content) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					throw new \LogicException('getContent() can only be called once when using the resource return type and PHP below 5.6.');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1054,7 +1066,7 @@ if ($currentContentIsResource) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					rewind($this->content);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $this->content;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (is_string($this->content)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ is_string($this->content)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$resource = fopen('php://temp','r+');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					fwrite($resource, $this->content);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					rewind($resource);  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1094,7 +1106,7 @@ foreach ($preferredLanguages as $language) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$extendedPreferredLanguages[] = $language;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (false !== $position = strpos($language,'_')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$superLanguage = substr($language, 0, $position);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!in_array($superLanguage, $preferredLanguages)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!\ in_array($superLanguage, $preferredLanguages)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$extendedPreferredLanguages[] = $superLanguage;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1113,11 +1125,11 @@ foreach ($languages as $lang => $acceptHeaderItem) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (false !== strpos($lang,'-')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$codes = explode('-', $lang);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('i'=== $codes[0]) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (count($codes) > 1) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ count($codes) > 1) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$lang = $codes[1];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					for ($i = 0, $max = count($codes); $i < $max; ++$i) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					for ($i = 0, $max = \ count($codes); $i < $max; ++$i) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (0 === $i) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$lang = strtolower($codes[0]);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} else {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1158,16 +1170,7 @@ return'XMLHttpRequest'== $this->headers->get('X-Requested-With'); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					protected function prepareRequestUri()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri ='';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($this->headers->has('X_ORIGINAL_URL')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri = $this->headers->get('X_ORIGINAL_URL');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->headers->remove('X_ORIGINAL_URL');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->server->remove('HTTP_X_ORIGINAL_URL');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->server->remove('UNENCODED_URL');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->server->remove('IIS_WasUrlRewritten');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} elseif ($this->headers->has('X_REWRITE_URL')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri = $this->headers->get('X_REWRITE_URL');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->headers->remove('X_REWRITE_URL');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} elseif ('1'== $this->server->get('IIS_WasUrlRewritten') &&''!= $this->server->get('UNENCODED_URL')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('1'== $this->server->get('IIS_WasUrlRewritten') &&''!= $this->server->get('UNENCODED_URL')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri = $this->server->get('UNENCODED_URL');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->server->remove('UNENCODED_URL');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$this->server->remove('IIS_WasUrlRewritten');  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1175,7 +1178,7 @@ $this->server->remove('IIS_WasUrlRewritten'); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri = $this->server->get('REQUEST_URI');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$schemeAndHttpHost = $this->getSchemeAndHttpHost();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (0 === strpos($requestUri, $schemeAndHttpHost)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri = substr($requestUri, strlen($schemeAndHttpHost));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri = substr($requestUri, \ strlen($schemeAndHttpHost));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} elseif ($this->server->has('ORIG_PATH_INFO')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri = $this->server->get('ORIG_PATH_INFO');  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1201,7 +1204,7 @@ $file = $this->server->get('SCRIPT_FILENAME',''); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$segs = explode('/', trim($file,'/'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$segs = array_reverse($segs);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$index = 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$last = count($segs);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$last = \ count($segs);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$baseUrl ='';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					do {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$seg = $segs[$index];  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1216,8 +1219,8 @@ $requestUri ='/'.$requestUri; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, $baseUrl)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $prefix;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, rtrim(dirname($baseUrl),'/'.DIRECTORY_SEPARATOR).'/')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return rtrim($prefix,'/'.DIRECTORY_SEPARATOR);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, rtrim(\ dirname($baseUrl),'/'.\ DIRECTORY_SEPARATOR).'/')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return rtrim($prefix,'/'.\ DIRECTORY_SEPARATOR);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$truncatedRequestUri = $requestUri;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (false !== $pos = strpos($requestUri,'?')) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1227,10 +1230,10 @@ $basename = basename($baseUrl); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (empty($basename) || !strpos(rawurldecode($truncatedRequestUri), $basename)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return'';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (strlen($requestUri) >= strlen($baseUrl) && (false !== $pos = strpos($requestUri, $baseUrl)) && 0 !== $pos) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (\ strlen($requestUri) >= \ strlen($baseUrl) && (false !== $pos = strpos($requestUri, $baseUrl)) && 0 !== $pos) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$baseUrl = substr($requestUri, 0, $pos + \ strlen($baseUrl));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return rtrim($baseUrl,'/'.DIRECTORY_SEPARATOR);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return rtrim($baseUrl,'/'.\ DIRECTORY_SEPARATOR);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					protected function prepareBasePath()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1240,11 +1243,11 @@ if (empty($baseUrl)) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return'';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (basename($baseUrl) === $filename) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$basePath = dirname($baseUrl);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$basePath = \ dirname($baseUrl);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$basePath = $baseUrl;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('\\'=== DIRECTORY_SEPARATOR) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('\\'=== \ DIRECTORY_SEPARATOR) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$basePath = str_replace('\\','/', $basePath);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return rtrim($basePath,'/');  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1261,7 +1264,7 @@ $requestUri = substr($requestUri, 0, $pos); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (''!== $requestUri &&'/'!== $requestUri[0]) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$requestUri ='/'.$requestUri;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$pathInfo = substr($requestUri, strlen($baseUrl));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$pathInfo = substr($requestUri, \ strlen($baseUrl));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null !== $baseUrl && (false === $pathInfo ||''=== $pathInfo)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return'/';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} elseif (null === $baseUrl) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1271,7 +1274,7 @@ return (string) $pathInfo; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					protected static function initializeFormats()  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static::$formats = array('html'=> array('text/html','application/xhtml+xml'),'txt'=> array('text/plain'),'js'=> array('application/javascript','application/x-javascript','text/javascript'),'css'=> array('text/css'),'json'=> array('application/json','application/x-json'),'xml'=> array('text/xml','application/xml','application/x-xml'),'rdf'=> array('application/rdf+xml'),'atom'=> array('application/atom+xml'),'rss'=> array('application/rss+xml'),'form'=> array('application/x-www-form-urlencoded'),  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static::$formats = array('html'=> array('text/html','application/xhtml+xml'),'txt'=> array('text/plain'),'js'=> array('application/javascript','application/x-javascript','text/javascript'),'css'=> array('text/css'),'json'=> array('application/json','application/x-json'),'jsonld'=> array('application/ld+json'),' xml'=> array('text/xml','application/xml','application/x-xml'),'rdf'=> array('application/rdf+xml'),'atom'=> array('application/atom+xml'),'rss'=> array('application/rss+xml'),'form'=> array('application/x-www-form-urlencoded'),  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					private function setPhpDefaultLocale($locale)  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1288,7 +1291,7 @@ private function getUrlencodedPrefix($string, $prefix) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (0 !== strpos(rawurldecode($string), $prefix)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$len = strlen($prefix);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$len = \ strlen($prefix);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (preg_match(sprintf('#^(%%[[:xdigit:]]{2}|.){%d}#', $len), $string, $match)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					return $match[0];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1297,7 +1300,7 @@ return false; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					private static function createRequestFromFactory(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (self::$requestFactory) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$request = call_user_func(self::$requestFactory, $query, $request, $attributes, $cookies, $files, $server, $content);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$request = \ call_user_func(self::$requestFactory, $query, $request, $attributes, $cookies, $files, $server, $content);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!$request instanceof self) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					throw new \LogicException('The Request factory must return an instance of Symfony\Component\HttpFoundation\Request.');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1321,6 +1324,11 @@ $clientValues[] = (self::HEADER_CLIENT_PORT === $type ?'0.0.0.0:':'').trim($v); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (self::$trustedHeaders[self::HEADER_FORWARDED] && $this->headers->has(self::$trustedHeaders[self::HEADER_FORWARDED])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$forwardedValues = $this->headers->get(self::$trustedHeaders[self::HEADER_FORWARDED]);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$forwardedValues = preg_match_all(sprintf('{(?:%s)=(?:"?\[?)([a-zA-Z0-9\.:_\-/]*+)}', self::$forwardedParams[$type]), $forwardedValues, $matches) ? $matches[1] : array();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (self::HEADER_CLIENT_PORT === $type) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					foreach ($forwardedValues as $k => $v) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$forwardedValues[$k] = substr_replace($v,'0.0.0.0', 0, strrpos($v,':'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null !== $ip) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$clientValues = $this->normalizeAndFilterClientIps($clientValues, $ip);