30. Predis\Connection\ConnectionException
…/­vendor/­predis/­predis/­src/­Connection/­AbstractConnection.php146
29. Predis\Connection\AbstractConnection onConnectionError
…/­vendor/­predis/­predis/­src/­Connection/­StreamConnection.php85
28. Predis\Connection\StreamConnection tcpStreamInitializer
…/­vendor/­predis/­predis/­src/­Connection/­StreamConnection.php56
27. Predis\Connection\StreamConnection createResource
…/­vendor/­predis/­predis/­src/­Connection/­AbstractConnection.php95
26. Predis\Connection\AbstractConnection connect
…/­vendor/­predis/­predis/­src/­Connection/­StreamConnection.php142
25. Predis\Connection\StreamConnection connect
…/­vendor/­predis/­predis/­src/­Connection/­AbstractConnection.php175
24. Predis\Connection\AbstractConnection getResource
…/­vendor/­predis/­predis/­src/­Connection/­StreamConnection.php168
23. Predis\Connection\StreamConnection write
…/­vendor/­predis/­predis/­src/­Connection/­StreamConnection.php274
22. Predis\Connection\StreamConnection writeRequest
…/­vendor/­predis/­predis/­src/­Connection/­AbstractConnection.php124
21. Predis\Connection\AbstractConnection executeCommand
…/­vendor/­predis/­predis/­src/­Client.php328
20. Predis\Client executeCommand
…/­vendor/­predis/­predis/­src/­Client.php311
19. Predis\Client __call
…/­vendor/­laravel/­framework/­src/­Illuminate/­Cache/­RedisStore.php52
18. Illuminate\Cache\RedisStore get
…/­vendor/­laravel/­framework/­src/­Illuminate/­Cache/­Repository.php95
17. Illuminate\Cache\Repository get
…/­vendor/­laravel/­framework/­src/­Illuminate/­Session/­CacheBasedSessionHandler.php56
16. Illuminate\Session\CacheBasedSessionHandler read
…/­vendor/­laravel/­framework/­src/­Illuminate/­Session/­Store.php119
15. Illuminate\Session\Store readFromHandler
…/­vendor/­laravel/­framework/­src/­Illuminate/­Session/­Store.php102
14. Illuminate\Session\Store loadSession
…/­vendor/­laravel/­framework/­src/­Illuminate/­Session/­Store.php88
13. Illuminate\Session\Store start
…/­vendor/­laravel/­framework/­src/­Illuminate/­Session/­Middleware/­StartSession.php103
12. Illuminate\Session\Middleware\StartSession startSession
…/­vendor/­laravel/­framework/­src/­Illuminate/­Session/­Middleware/­StartSession.php56
11. Illuminate\Session\Middleware\StartSession handle
…/­vendor/­laravel/­framework/­src/­Illuminate/­Pipeline/­Pipeline.php125
10. Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
…/­vendor/­laravel/­framework/­src/­Illuminate/­Cookie/­Middleware/­AddQueuedCookiesToResponse.php36
9. Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse handle
…/­vendor/­laravel/­framework/­src/­Illuminate/­Pipeline/­Pipeline.php125
8. Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
…/­vendor/­laravel/­framework/­src/­Illuminate/­Cookie/­Middleware/­EncryptCookies.php40
7. Illuminate\Cookie\Middleware\EncryptCookies handle
…/­vendor/­laravel/­framework/­src/­Illuminate/­Pipeline/­Pipeline.php125
6. Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
…/­vendor/­laravel/­framework/­src/­Illuminate/­Foundation/­Http/­Middleware/­CheckForMaintenanceMode.php42
5. Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode handle
…/­vendor/­laravel/­framework/­src/­Illuminate/­Pipeline/­Pipeline.php125
4. Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
<#unknown>0
3. call_user_func
…/­vendor/­laravel/­framework/­src/­Illuminate/­Pipeline/­Pipeline.php100
2. Illuminate\Pipeline\Pipeline then
…/­vendor/­laravel/­framework/­src/­Illuminate/­Foundation/­Http/­Kernel.php115
1. Illuminate\Foundation\Http\Kernel sendRequestThroughRouter
…/­vendor/­laravel/­framework/­src/­Illuminate/­Foundation/­Http/­Kernel.php84
0. Illuminate\Foundation\Http\Kernel handle
…/­public/­index.php52

Predis \ Connection \ ConnectionException

Callstack information; navigate with mouse or keyboard using Ctrl+↑ or Ctrl+↓
Copy-to-clipboard button
Exception message and its type
Code snippet where the error was thrown
Server state information
Application provided context information
Predis\Connection\ConnectionException thrown with message "php_network_getaddresses: getaddrinfo failed: Name or service not known [tcp://r-2ze007f31c78aff4.redis.rds.aliyuncs.com:6379]" Stacktrace: #30 Predis\Connection\ConnectionException in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/AbstractConnection.php:146 #29 Predis\Connection\AbstractConnection:onConnectionError in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php:85 #28 Predis\Connection\StreamConnection:tcpStreamInitializer in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php:56 #27 Predis\Connection\StreamConnection:createResource in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/AbstractConnection.php:95 #26 Predis\Connection\AbstractConnection:connect in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php:142 #25 Predis\Connection\StreamConnection:connect in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/AbstractConnection.php:175 #24 Predis\Connection\AbstractConnection:getResource in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php:168 #23 Predis\Connection\StreamConnection:write in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php:274 #22 Predis\Connection\StreamConnection:writeRequest in /application/aier/proj-ai-er/vendor/predis/predis/src/Connection/AbstractConnection.php:124 #21 Predis\Connection\AbstractConnection:executeCommand in /application/aier/proj-ai-er/vendor/predis/predis/src/Client.php:328 #20 Predis\Client:executeCommand in /application/aier/proj-ai-er/vendor/predis/predis/src/Client.php:311 #19 Predis\Client:__call in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php:52 #18 Illuminate\Cache\RedisStore:get in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Cache/Repository.php:95 #17 Illuminate\Cache\Repository:get in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php:56 #16 Illuminate\Session\CacheBasedSessionHandler:read in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Store.php:119 #15 Illuminate\Session\Store:readFromHandler in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Store.php:102 #14 Illuminate\Session\Store:loadSession in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Store.php:88 #13 Illuminate\Session\Store:start in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:103 #12 Illuminate\Session\Middleware\StartSession:startSession in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:56 #11 Illuminate\Session\Middleware\StartSession:handle in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:125 #10 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:36 #9 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:125 #8 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:40 #7 Illuminate\Cookie\Middleware\EncryptCookies:handle in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:125 #6 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:42 #5 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:125 #4 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in <#unknown>:0 #3 call_user_func in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:100 #2 Illuminate\Pipeline\Pipeline:then in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:115 #1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:84 #0 Illuminate\Foundation\Http\Kernel:handle in /application/aier/proj-ai-er/public/index.php:52

php_network_getaddresses: getaddrinfo failed: Name or service not known [tcp://r-2ze007f31c78aff4.redis.rds.aliyuncs.com:6379]

/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/AbstractConnection.php
     *
     * @param string $message Error message.
     * @param int    $code    Error code.
     */
    protected function onConnectionError($message, $code = null)
    {
        CommunicationException::handle(
            new ConnectionException(
                $this, "$message [{$this->parameters->scheme}://{$this->getIdentifier()}]", $code
            )
/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php
            $flags |= STREAM_CLIENT_PERSISTENT;
            $uri .= strpos($path = $parameters->path, '/') === 0 ? $path : "/$path";
        }
 
        $resource = @stream_socket_client($uri, $errno, $errstr, (float) $parameters->timeout, $flags);
 
        if (!$resource) {
            $this->onConnectionError(trim($errstr), $errno);
        }
 
/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php
 
    /**
     * {@inheritdoc}
     */
    protected function createResource()
    {
        $initializer = "{$this->parameters->scheme}StreamInitializer";
        $resource = $this->$initializer($this->parameters);
 
        return $resource;
/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/AbstractConnection.php
 
    /**
     * {@inheritdoc}
     */
    public function connect()
    {
        if (!$this->isConnected()) {
            $this->resource = $this->createResource();
 
            return true;
/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php
    }
 
    /**
     * {@inheritdoc}
     */
    public function connect()
    {
        if (parent::connect() && $this->initCommands) {
            foreach ($this->initCommands as $command) {
                $this->executeCommand($command);
/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/AbstractConnection.php
     */
    public function getResource()
    {
        if (isset($this->resource)) {
            return $this->resource;
        }
 
        $this->connect();
 
        return $this->resource;
/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php
     * Performs a write operation over the stream of the buffer containing a
     * command serialized with the Redis wire protocol.
     *
     * @param string $buffer Representation of a command in the Redis wire protocol.
     */
    protected function write($buffer)
    {
        $socket = $this->getResource();
 
        while (($length = strlen($buffer)) > 0) {
/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/StreamConnection.php
 
        for ($i = 0, $reqlen--; $i < $reqlen; $i++) {
            $argument = $arguments[$i];
            $arglen = strlen($argument);
            $buffer .= "\${$arglen}\r\n{$argument}\r\n";
        }
 
        $this->write($buffer);
    }
}
/application/aier/proj-ai-er/vendor/predis/predis/src/Connection/AbstractConnection.php
    }
 
    /**
     * {@inheritdoc}
     */
    public function executeCommand(CommandInterface $command)
    {
        $this->writeRequest($command);
 
        return $this->readResponse($command);
/application/aier/proj-ai-er/vendor/predis/predis/src/Client.php
    }
 
    /**
     * {@inheritdoc}
     */
    public function executeCommand(CommandInterface $command)
    {
        $response = $this->connection->executeCommand($command);
 
        if ($response instanceof ResponseInterface) {
/application/aier/proj-ai-er/vendor/predis/predis/src/Client.php
 
    /**
     * {@inheritdoc}
     */
    public function __call($commandID, $arguments)
    {
        return $this->executeCommand(
            $this->createCommand($commandID, $arguments)
        );
    }
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php
	 * Retrieve an item from the cache by key.
	 *
	 * @param  string  $key
	 * @return mixed
	 */
	public function get($key)
	{
		if ( ! is_null($value = $this->connection()->get($this->prefix.$key)))
		{
			return is_numeric($value) ? $value : unserialize($value);
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Cache/Repository.php
	 *
	 * @param  string  $key
	 * @param  mixed   $default
	 * @return mixed
	 */
	public function get($key, $default = null)
	{
		$value = $this->store->get($key);
 
		if (is_null($value))
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php
	}
 
	/**
	 * {@inheritDoc}
	 */
	public function read($sessionId)
	{
		return $this->cache->get($sessionId, '');
	}
 
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Store.php
	/**
	 * Read the session data from the handler.
	 *
	 * @return array
	 */
	protected function readFromHandler()
	{
		$data = $this->handler->read($this->getId());
 
		if ($data)
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Store.php
	/**
	 * Load the session data from the handler.
	 *
	 * @return void
	 */
	protected function loadSession()
	{
		$this->attributes = array_merge($this->attributes, $this->readFromHandler());
 
		foreach (array_merge($this->bags, array($this->metaBag)) as $bag)
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Store.php
	}
 
	/**
	 * {@inheritdoc}
	 */
	public function start()
	{
		$this->loadSession();
 
		if ( ! $this->has('_token')) $this->regenerateToken();
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
	 * @param  \Illuminate\Http\Request  $request
	 * @return \Illuminate\Session\SessionInterface
	 */
	protected function startSession(Request $request)
	{
		with($session = $this->getSession($request))->setRequestOnHandler($request);
 
		$session->start();
 
		return $session;
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
		$this->sessionHandled = true;
 
		// If a session driver has been configured, we will need to start the session here
		// so that the data is ready for an application. Note that the Laravel sessions
		// do not make use of PHP "native" sessions in any way since they are crappy.
		if ($this->sessionConfigured())
		{
			$session = $this->startSession($request);
 
			$request->setSession($session);
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
				if ($pipe instanceof Closure)
				{
					return call_user_func($pipe, $passable, $stack);
				}
				else
				{
					return $this->container->make($pipe)
							->{$this->method}($passable, $stack);
				}
			};
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php
	 *
	 * @param  \Illuminate\Http\Request  $request
	 * @param  \Closure  $next
	 * @return mixed
	 */
	public function handle($request, Closure $next)
	{
		$response = $next($request);
 
		foreach ($this->cookies->getQueuedCookies() as $cookie)
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
				if ($pipe instanceof Closure)
				{
					return call_user_func($pipe, $passable, $stack);
				}
				else
				{
					return $this->container->make($pipe)
							->{$this->method}($passable, $stack);
				}
			};
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php
	 *
	 * @param  \Illuminate\Http\Request  $request
	 * @param  \Closure  $next
	 * @return mixed
	 */
	public function handle($request, Closure $next)
	{
		return $this->encrypt($next($this->decrypt($request)));
	}
 
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
				if ($pipe instanceof Closure)
				{
					return call_user_func($pipe, $passable, $stack);
				}
				else
				{
					return $this->container->make($pipe)
							->{$this->method}($passable, $stack);
				}
			};
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php
	public function handle($request, Closure $next)
	{
		if ($this->app->isDownForMaintenance())
		{
			throw new HttpException(503);
		}
 
		return $next($request);
	}
 
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
				if ($pipe instanceof Closure)
				{
					return call_user_func($pipe, $passable, $stack);
				}
				else
				{
					return $this->container->make($pipe)
							->{$this->method}($passable, $stack);
				}
			};
<#unknown>
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
	public function then(Closure $destination)
	{
		$firstSlice = $this->getInitialSlice($destination);
 
		$pipes = array_reverse($this->pipes);
 
		return call_user_func(
			array_reduce($pipes, $this->getSlice(), $firstSlice), $this->passable
		);
	}
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
		Facade::clearResolvedInstance('request');
 
		$this->bootstrap();
 
		return (new Pipeline($this->app))
		            ->send($request)
		            ->through($this->middleware)
		            ->then($this->dispatchToRouter());
	}
 
/application/aier/proj-ai-er/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
	 * @param  \Illuminate\Http\Request  $request
	 * @return \Illuminate\Http\Response
	 */
	public function handle($request)
	{
		try
		{
			$response = $this->sendRequestThroughRouter($request);
		}
		catch (Exception $e)
/application/aier/proj-ai-er/public/index.php
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
 
$response = $kernel->handle(
	$request = Illuminate\Http\Request::capture()
);
Illuminate\Http\Request::setTrustedProxies(['192.168.100.4','192.168.100.14','127.0.0.1']);
Key Value
USER nginx
HOME /home/nginx
HTTP_USER_AGENT claudebot
HTTP_ACCEPT */*
HTTP_CONNECTION close
HTTP_X_FORWARDED_FOR 52.86.117.142
HTTP_X_REAL_IP 52.86.117.142
HTTP_HOST aier02.vhall.com
REDIRECT_STATUS 200
SERVER_NAME aier02.vhall.com
SERVER_PORT 80
SERVER_ADDR 10.10.200.214
REMOTE_PORT 63910
REMOTE_ADDR 10.10.200.219
SERVER_SOFTWARE nginx/1.6.2
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.0
DOCUMENT_ROOT /application/aier/proj-ai-er/public
DOCUMENT_URI /index.php
REQUEST_URI /184216222
SCRIPT_NAME /index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING
SCRIPT_FILENAME /application/aier/proj-ai-er/public/index.php
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1711700040.8948
REQUEST_TIME 1711700040
APP_ENV local
APP_DEBUG true
APP_KEY faZ88rI1Oya5jcvacPrTSJC19XwNu9aF
DB_HOST rm-2ze8jb67f73y0b446.mysql.rds.aliyuncs.com
DB_DATABASE aier
DB_USERNAME aier
DB_PASSWORD Aier@Aier
REDIS_HOST r-2ze007f31c78aff4.redis.rds.aliyuncs.com
REDIS_PORT 6379
REDIS_DATABASE 2
REDIS_PASSWORD A6b3c7d9e
CACHE_DRIVER file
SESSION_DRIVER file
QUEUE_DRIVER sync
MAIL_DRIVER smtp
MAIL_HOST mailtrap.io
MAIL_PORT 2525
MAIL_USERNAME null
MAIL_PASSWORD null
STATIC_DOMAIN ccstatic01.aier.vhall.com
STATIC_DIR static
THIRDLIB_DIR 3rdlibs
DOC_DIR document
UPLOAD_DIR upload
PLAYER_DIR player
WEB_DOMAIN //aier.vhall.com
STATIC_URL //ccstatic01.aier.vhall.com/static
THIRDLIB_URL //ccstatic01.aier.vhall.com/3rdlibs
PLAYER_URL //ccstatic01.aier.vhall.com/player
DOC_URL //ccstatic01.aier.vhall.com/document
UPLOAD_URL //ccstatic01.aier.vhall.com/upload
TRUSTED_PROXIES 192.168.100.4,192.168.100.14
MSGSRV_NUM 1
empty
empty
empty
empty
empty
Key Value
APP_ENV local
APP_DEBUG true
APP_KEY faZ88rI1Oya5jcvacPrTSJC19XwNu9aF
DB_HOST rm-2ze8jb67f73y0b446.mysql.rds.aliyuncs.com
DB_DATABASE aier
DB_USERNAME aier
DB_PASSWORD Aier@Aier
REDIS_HOST r-2ze007f31c78aff4.redis.rds.aliyuncs.com
REDIS_PORT 6379
REDIS_DATABASE 2
REDIS_PASSWORD A6b3c7d9e
CACHE_DRIVER file
SESSION_DRIVER file
QUEUE_DRIVER sync
MAIL_DRIVER smtp
MAIL_HOST mailtrap.io
MAIL_PORT 2525
MAIL_USERNAME null
MAIL_PASSWORD null
STATIC_DOMAIN ccstatic01.aier.vhall.com
STATIC_DIR static
THIRDLIB_DIR 3rdlibs
DOC_DIR document
UPLOAD_DIR upload
PLAYER_DIR player
WEB_DOMAIN //aier.vhall.com
STATIC_URL //ccstatic01.aier.vhall.com/static
THIRDLIB_URL //ccstatic01.aier.vhall.com/3rdlibs
PLAYER_URL //ccstatic01.aier.vhall.com/player
DOC_URL //ccstatic01.aier.vhall.com/document
UPLOAD_URL //ccstatic01.aier.vhall.com/upload
TRUSTED_PROXIES 192.168.100.4,192.168.100.14
MSGSRV_NUM 1
0. Whoops\Handler\PrettyPageHandler