throwThrowableMiddleware($exception); } public function getNotFoundDecorator(\League\Route\Http\Exception\NotFoundException $exception): \Psr\Http\Server\MiddlewareInterface { return $this->throwThrowableMiddleware($exception); } public function getThrowableHandler(): \Psr\Http\Server\MiddlewareInterface { return new class implements \Psr\Http\Server\MiddlewareInterface { public function process( \Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Server\RequestHandlerInterface $handler ): \Psr\Http\Message\ResponseInterface { try { return $handler->handle($request); } catch (Throwable $e) { throw $e; } } }; } public function invokeRouteCallable( Route $route, \Psr\Http\Message\ServerRequestInterface $request, ): \Psr\Http\Message\ResponseInterface { $controller = $route->getCallable($this->getContainer()); $response = $controller($request, $route->getVars()); return $this->decorateResponse($response); } protected function throwThrowableMiddleware(Throwable $error): \Psr\Http\Server\MiddlewareInterface { return new class ($error) implements \Psr\Http\Server\MiddlewareInterface { protected $error; public function __construct(Throwable $error) { $this->error = $error; } public function process( \Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Server\RequestHandlerInterface $handler ): \Psr\Http\Message\ResponseInterface { throw $this->error; } }; } } __halt_compiler();----SIGNATURE:----Dfz8LWIo7m2MCVKhJaAh5DeGqh2SZNdKFGZ5NIYv9lBCZ8QU9DFEyafm1VwH0m5h2V4m8lMrjlqWHxmPO3HPpaoY288yiHhVxQfiMILknxfTHHK+hgtRSxfuRU0fJrFHbumo7ZCZocMe3OtfBVhHDaIzzUAlwXr3f5V0MvhIH47ubOqxNpUPPPRyLOiLMzN/SuPCR0BVIgsBrLNfDwkAJv3gv4kvOdwCOkHjdzipV5l6EXKTYKfZfF0U2/y6TJZUvJI5TVmG9Rq4vtkIlocIO6ktSSP5rBK01K0rDMJW1458dENu7b83k4r6lDc1OwwqR3PQHIneoWUh0P0I45RA535fXSRFb0xBC1VKEzplf/3WcOwuK2LOXqp2OecnIAnHkTMH6cMtd2TE5iveH9huOq67CHX3cm9atfsFcxp3A8+TJqb2xe0a4XQOYO3PcRu4M6g5NdyfwVGh6afq94Qo1DHp+Sy/sxfOOVnJIJx86+IOIXkC9WoJZbJ+cvJV91hlQ5tJt2dcwgXP/NGklHK+Aq/YB2DBUxVkGOVZJAMLWtSX8J70S4oMGfbCw/oCz40dabRKel5vMFIu9gXtyN0sN76j77xNzaKCdGnNKnc4GQad150nhAzoJ93K2sMGurcG0+bPOrn8Bbgoz3TCqlowR0UYmLSi8SZRBOcU4GDaIRQ=----ATTACHMENT:----MTEwOTk3NjIzNTM0MDIyIDY1MDAyMTEyOTE2MTI0NTIgODQ3MjYyMTg2MTk5NzYwNA==