InvalidArgumentException
Missing client credentials key [identifier] from options. InvalidArgumentException thrown with message "Missing client credentials key [identifier] from options." Stacktrace: #50 InvalidArgumentException in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/league/oauth1-client/src/Server/Server.php:409 #49 League\OAuth1\Client\Server\Server:createClientCredentials in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/league/oauth1-client/src/Server/Server.php:67 #48 League\OAuth1\Client\Server\Server:__construct in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/league/oauth1-client/src/Server/Twitter.php:21 #47 League\OAuth1\Client\Server\Twitter:__construct in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/socialite/src/SocialiteManager.php:141 #46 Laravel\Socialite\SocialiteManager:createTwitterDriver in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Support/Manager.php:115 #45 Illuminate\Support\Manager:createDriver in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Support/Manager.php:90 #44 Illuminate\Support\Manager:driver in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:261 #43 Illuminate\Support\Facades\Facade:__callStatic in /var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Controllers/Auth/LoginController.php:46 #42 App\Http\Controllers\Auth\LoginController:redirectToProvider in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54 #41 Illuminate\Routing\Controller:callAction in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45 #40 Illuminate\Routing\ControllerDispatcher:dispatch in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php:219 #39 Illuminate\Routing\Route:runController in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php:176 #38 Illuminate\Routing\Route:run in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:681 #37 Illuminate\Routing\Router:Illuminate\Routing\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:130 #36 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Middleware/RedirectIfAuthenticated.php:24 #35 App\Http\Middleware\RedirectIfAuthenticated:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #34 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Middleware/CheckForMaintenanceMode.php:58 #33 App\Http\Middleware\CheckForMaintenanceMode:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #32 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Middleware/HttpsProtocol.php:20 #31 App\Http\Middleware\HttpsProtocol:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #30 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Middleware/Language.php:31 #29 App\Http\Middleware\Language:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #28 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41 #27 Illuminate\Routing\Middleware\SubstituteBindings:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #26 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:78 #25 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #24 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49 #23 Illuminate\View\Middleware\ShareErrorsFromSession:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #22 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:56 #21 Illuminate\Session\Middleware\StartSession:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #20 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37 #19 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #18 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:105 #17 Illuminate\Pipeline\Pipeline:then in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:683 #16 Illuminate\Routing\Router:runRouteWithinStack in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:658 #15 Illuminate\Routing\Router:runRoute in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:624 #14 Illuminate\Routing\Router:dispatchToRoute in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:613 #13 Illuminate\Routing\Router:dispatch in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:170 #12 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:130 #11 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/fideloper/proxy/src/TrustProxies.php:57 #10 Fideloper\Proxy\TrustProxies:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #9 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21 #8 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21 #6 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #5 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27 #4 Illuminate\Foundation\Http\Middleware\ValidatePostSize:handle in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:171 #3 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:105 #2 Illuminate\Pipeline\Pipeline:then in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:145 #1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:110 #0 Illuminate\Foundation\Http\Kernel:handle in /var/www/phsar121_ecommerce/phsar121_laravel/public/index.php:55
50
InvalidArgumentException
/vendor/league/oauth1-client/src/Server/Server.php409
49
League\OAuth1\Client\Server\Server createClientCredentials
/vendor/league/oauth1-client/src/Server/Server.php67
48
League\OAuth1\Client\Server\Server __construct
/vendor/league/oauth1-client/src/Server/Twitter.php21
47
League\OAuth1\Client\Server\Twitter __construct
/vendor/laravel/socialite/src/SocialiteManager.php141
46
Laravel\Socialite\SocialiteManager createTwitterDriver
/vendor/laravel/framework/src/Illuminate/Support/Manager.php115
45
Illuminate\Support\Manager createDriver
/vendor/laravel/framework/src/Illuminate/Support/Manager.php90
44
Illuminate\Support\Manager driver
/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php261
43
Illuminate\Support\Facades\Facade __callStatic
/app/Http/Controllers/Auth/LoginController.php46
42
App\Http\Controllers\Auth\LoginController redirectToProvider
/vendor/laravel/framework/src/Illuminate/Routing/Controller.php54
41
Illuminate\Routing\Controller callAction
/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php45
40
Illuminate\Routing\ControllerDispatcher dispatch
/vendor/laravel/framework/src/Illuminate/Routing/Route.php219
39
Illuminate\Routing\Route runController
/vendor/laravel/framework/src/Illuminate/Routing/Route.php176
38
Illuminate\Routing\Route run
/vendor/laravel/framework/src/Illuminate/Routing/Router.php681
37
Illuminate\Routing\Router Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php130
36
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/app/Http/Middleware/RedirectIfAuthenticated.php24
35
App\Http\Middleware\RedirectIfAuthenticated handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
34
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/app/Http/Middleware/CheckForMaintenanceMode.php58
33
App\Http\Middleware\CheckForMaintenanceMode handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
32
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/app/Http/Middleware/HttpsProtocol.php20
31
App\Http\Middleware\HttpsProtocol handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
30
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/app/Http/Middleware/Language.php31
29
App\Http\Middleware\Language handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
28
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php41
27
Illuminate\Routing\Middleware\SubstituteBindings handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
26
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php78
25
Illuminate\Foundation\Http\Middleware\VerifyCsrfToken handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
24
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php49
23
Illuminate\View\Middleware\ShareErrorsFromSession handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
22
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php56
21
Illuminate\Session\Middleware\StartSession handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
20
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php37
19
Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
18
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php105
17
Illuminate\Pipeline\Pipeline then
/vendor/laravel/framework/src/Illuminate/Routing/Router.php683
16
Illuminate\Routing\Router runRouteWithinStack
/vendor/laravel/framework/src/Illuminate/Routing/Router.php658
15
Illuminate\Routing\Router runRoute
/vendor/laravel/framework/src/Illuminate/Routing/Router.php624
14
Illuminate\Routing\Router dispatchToRoute
/vendor/laravel/framework/src/Illuminate/Routing/Router.php613
13
Illuminate\Routing\Router dispatch
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php170
12
Illuminate\Foundation\Http\Kernel Illuminate\Foundation\Http\{closure}
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php130
11
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/fideloper/proxy/src/TrustProxies.php57
10
Fideloper\Proxy\TrustProxies handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
9
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php21
8
Illuminate\Foundation\Http\Middleware\TransformsRequest handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
7
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php21
6
Illuminate\Foundation\Http\Middleware\TransformsRequest handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
5
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php27
4
Illuminate\Foundation\Http\Middleware\ValidatePostSize handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php171
3
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php105
2
Illuminate\Pipeline\Pipeline then
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php145
1
Illuminate\Foundation\Http\Kernel sendRequestThroughRouter
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php110
0
Illuminate\Foundation\Http\Kernel handle
/public/index.php55
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/league/oauth1-client/src/Server/Server.php
    {
        $defaultHeaders = $this->getHttpClientDefaultHeaders();
 
        return array_merge($headers, $defaultHeaders);
    }
 
    /**
     * Creates a client credentials instance from an array of credentials.
     *
     * @param array $clientCredentials
     *
     * @return ClientCredentials
     */
    protected function createClientCredentials(array $clientCredentials)
    {
        $keys = ['identifier', 'secret'];
 
        foreach ($keys as $key) {
            if ( ! isset($clientCredentials[$key])) {
                throw new \InvalidArgumentException("Missing client credentials key [$key] from options.");
            }
        }
 
        if (isset($clientCredentials['rsa_private_key']) && isset($clientCredentials['rsa_public_key'])) {
            $_clientCredentials = new RsaClientCredentials();
            $_clientCredentials->setRsaPrivateKey($clientCredentials['rsa_private_key']);
            $_clientCredentials->setRsaPublicKey($clientCredentials['rsa_public_key']);
        } else {
            $_clientCredentials = new ClientCredentials();
        }
 
        $_clientCredentials->setIdentifier($clientCredentials['identifier']);
        $_clientCredentials->setSecret($clientCredentials['secret']);
 
        if (isset($clientCredentials['callback_uri'])) {
            $_clientCredentials->setCallbackUri($clientCredentials['callback_uri']);
        }
 
        return $_clientCredentials;
    }
Arguments
  1. "Missing client credentials key [identifier] from options."
    
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/league/oauth1-client/src/Server/Server.php
    protected $cachedUserDetailsResponse;
 
    /**
     * Optional user agent.
     *
     * @var string
     */
    protected $userAgent;
 
    /**
     * Create a new server instance.
     *
     * @param ClientCredentialsInterface|array $clientCredentials
     * @param SignatureInterface               $signature
     */
    public function __construct($clientCredentials, SignatureInterface $signature = null)
    {
        // Pass through an array or client credentials, we don't care
        if (is_array($clientCredentials)) {
            $clientCredentials = $this->createClientCredentials($clientCredentials);
        } elseif ( ! $clientCredentials instanceof ClientCredentialsInterface) {
            throw new \InvalidArgumentException('Client credentials must be an array or valid object.');
        }
 
        $this->clientCredentials = $clientCredentials;
 
        if ( ! $signature && $clientCredentials instanceof RsaClientCredentials) {
            $signature = new RsaSha1Signature($clientCredentials);
        }
        $this->signature = $signature ?: new HmacSha1Signature($clientCredentials);
    }
 
    /**
     * Gets temporary credentials by performing a request to
     * the server.
     *
     * @return TemporaryCredentials
     *
     * @throws CredentialsException
     */
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/league/oauth1-client/src/Server/Twitter.php
 
namespace League\OAuth1\Client\Server;
 
use League\OAuth1\Client\Credentials\TokenCredentials;
 
class Twitter extends Server
{
    /**
     * Application scope.
     *
     * @var ?string
     */
    protected $applicationScope = null;
 
    /**
     * @inheritDoc
     */
    public function __construct($clientCredentials, SignatureInterface $signature = null)
    {
        parent::__construct($clientCredentials, $signature);
 
        if (is_array($clientCredentials)) {
            $this->parseConfiguration($clientCredentials);
        }
    }
 
    /**
     * Set the application scope.
     *
     * @param ?string $applicationScope
     *
     * @return Twitter
     */
    public function setApplicationScope($applicationScope)
    {
        $this->applicationScope = $applicationScope;
 
        return $this;
    }
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/socialite/src/SocialiteManager.php
    public function buildProvider($provider, $config)
    {
        return new $provider(
            $this->app->make('request'), $config['client_id'],
            $config['client_secret'], $this->formatRedirectUrl($config),
            Arr::get($config, 'guzzle', [])
        );
    }
 
    /**
     * Create an instance of the specified driver.
     *
     * @return \Laravel\Socialite\One\AbstractProvider
     */
    protected function createTwitterDriver()
    {
        $config = $this->app->make('config')['services.twitter'];
 
        return new TwitterProvider(
            $this->app->make('request'), new TwitterServer($this->formatConfig($config))
        );
    }
 
    /**
     * Format the server configuration.
     *
     * @param  array  $config
     * @return array
     */
    public function formatConfig(array $config)
    {
        return array_merge([
            'identifier' => $config['client_id'],
            'secret' => $config['client_secret'],
            'callback_uri' => $this->formatRedirectUrl($config),
        ], $config);
    }
 
    /**
     * Format the callback URL, resolving a relative URI if needed.
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Support/Manager.php
    /**
     * Create a new driver instance.
     *
     * @param  string  $driver
     * @return mixed
     *
     * @throws \InvalidArgumentException
     */
    protected function createDriver($driver)
    {
        // First, we will determine if a custom driver creator exists for the given driver and
        // if it does not we will check for a creator method for the driver. Custom creator
        // callbacks allow developers to build their own "drivers" easily using Closures.
        if (isset($this->customCreators[$driver])) {
            return $this->callCustomCreator($driver);
        } else {
            $method = 'create'.Str::studly($driver).'Driver';
 
            if (method_exists($this, $method)) {
                return $this->$method();
            }
        }
 
        throw new InvalidArgumentException("Driver [$driver] not supported.");
    }
 
    /**
     * Call a custom driver creator.
     *
     * @param  string  $driver
     * @return mixed
     */
    protected function callCustomCreator($driver)
    {
        return $this->customCreators[$driver]($this->container);
    }
 
    /**
     * Register a custom driver creator Closure.
     *
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Support/Manager.php
     * @param  string  $driver
     * @return mixed
     *
     * @throws \InvalidArgumentException
     */
    public function driver($driver = null)
    {
        $driver = $driver ?: $this->getDefaultDriver();
 
        if (is_null($driver)) {
            throw new InvalidArgumentException(sprintf(
                'Unable to resolve NULL driver for [%s].', static::class
            ));
        }
 
        // If the given driver has not been created before, we will create the instances
        // here and cache it so we can return it next time very quickly. If there is
        // already a driver created by this name, we'll just return that instance.
        if (! isset($this->drivers[$driver])) {
            $this->drivers[$driver] = $this->createDriver($driver);
        }
 
        return $this->drivers[$driver];
    }
 
    /**
     * Create a new driver instance.
     *
     * @param  string  $driver
     * @return mixed
     *
     * @throws \InvalidArgumentException
     */
    protected function createDriver($driver)
    {
        // First, we will determine if a custom driver creator exists for the given driver and
        // if it does not we will check for a creator method for the driver. Custom creator
        // callbacks allow developers to build their own "drivers" easily using Closures.
        if (isset($this->customCreators[$driver])) {
            return $this->callCustomCreator($driver);
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php
    }
 
    /**
     * Handle dynamic, static calls to the object.
     *
     * @param  string  $method
     * @param  array  $args
     * @return mixed
     *
     * @throws \RuntimeException
     */
    public static function __callStatic($method, $args)
    {
        $instance = static::getFacadeRoot();
 
        if (! $instance) {
            throw new RuntimeException('A facade root has not been set.');
        }
 
        return $instance->$method(...$args);
    }
}
 
/var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Controllers/Auth/LoginController.php
    */
 
    use AuthenticatesUsers;
 
    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    /*protected $redirectTo = '/';*/
 
 
    /**
     * Redirect the user to the Google authentication page.
     *
     * @return \Illuminate\Http\Response
     */
    public function redirectToProvider($provider)
    {
        return Socialite::driver($provider)->redirect();
    }
 
    /**
     * Obtain the user information from Google.
     *
     * @return \Illuminate\Http\Response
     */
    public function handleProviderCallback(Request $request, $provider)
    {
        try {
            if ($provider == 'twitter') {
                $user = Socialite::driver('twitter')->user();
            } else {
                $user = Socialite::driver($provider)->stateless()->user();
            }
        } catch (\Exception $e) {
            flash("Something Went wrong. Please try again.")->error();
            return redirect()->route('user.login');
        }
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Controller.php
    /**
     * Get the middleware assigned to the controller.
     *
     * @return array
     */
    public function getMiddleware()
    {
        return $this->middleware;
    }
 
    /**
     * Execute an action on the controller.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function callAction($method, $parameters)
    {
        return $this->{$method}(...array_values($parameters));
    }
 
    /**
     * Handle calls to missing methods on the controller.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return mixed
     *
     * @throws \BadMethodCallException
     */
    public function __call($method, $parameters)
    {
        throw new BadMethodCallException(sprintf(
            'Method %s::%s does not exist.', static::class, $method
        ));
    }
}
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
    {
        $this->container = $container;
    }
 
    /**
     * Dispatch a request to a given controller and method.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  mixed  $controller
     * @param  string  $method
     * @return mixed
     */
    public function dispatch(Route $route, $controller, $method)
    {
        $parameters = $this->resolveClassMethodDependencies(
            $route->parametersWithoutNulls(), $controller, $method
        );
 
        if (method_exists($controller, 'callAction')) {
            return $controller->callAction($method, $parameters);
        }
 
        return $controller->{$method}(...array_values($parameters));
    }
 
    /**
     * Get the middleware for the controller instance.
     *
     * @param  \Illuminate\Routing\Controller  $controller
     * @param  string  $method
     * @return array
     */
    public function getMiddleware($controller, $method)
    {
        if (! method_exists($controller, 'getMiddleware')) {
            return [];
        }
 
        return collect($controller->getMiddleware())->reject(function ($data) use ($method) {
            return static::methodExcludedByOptions($method, $data['options']);
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php
    protected function runCallable()
    {
        $callable = $this->action['uses'];
 
        return $callable(...array_values($this->resolveMethodDependencies(
            $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses'])
        )));
    }
 
    /**
     * Run the route action and return the response.
     *
     * @return mixed
     *
     * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
     */
    protected function runController()
    {
        return $this->controllerDispatcher()->dispatch(
            $this, $this->getController(), $this->getControllerMethod()
        );
    }
 
    /**
     * Get the controller instance for the route.
     *
     * @return mixed
     */
    public function getController()
    {
        if (! $this->controller) {
            $class = $this->parseControllerCallback()[0];
 
            $this->controller = $this->container->make(ltrim($class, '\\'));
        }
 
        return $this->controller;
    }
 
    /**
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php
     *
     * @throws \UnexpectedValueException
     */
    protected function parseAction($action)
    {
        return RouteAction::parse($this->uri, $action);
    }
 
    /**
     * Run the route action and return the response.
     *
     * @return mixed
     */
    public function run()
    {
        $this->container = $this->container ?: new Container;
 
        try {
            if ($this->isControllerAction()) {
                return $this->runController();
            }
 
            return $this->runCallable();
        } catch (HttpResponseException $e) {
            return $e->getResponse();
        }
    }
 
    /**
     * Checks whether the route's action is a controller.
     *
     * @return bool
     */
    protected function isControllerAction()
    {
        return is_string($this->action['uses']);
    }
 
    /**
     * Run the route action and return the response.
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php
    /**
     * Run the given route within a Stack "onion" instance.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  \Illuminate\Http\Request  $request
     * @return mixed
     */
    protected function runRouteWithinStack(Route $route, Request $request)
    {
        $shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
                                $this->container->make('middleware.disable') === true;
 
        $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);
 
        return (new Pipeline($this->container))
                        ->send($request)
                        ->through($middleware)
                        ->then(function ($request) use ($route) {
                            return $this->prepareResponse(
                                $request, $route->run()
                            );
                        });
    }
 
    /**
     * Gather the middleware for the given route with resolved class names.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @return array
     */
    public function gatherRouteMiddleware(Route $route)
    {
        $middleware = collect($route->gatherMiddleware())->map(function ($name) {
            return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);
        })->flatten();
 
        return $this->sortMiddleware($middleware);
    }
 
    /**
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
     * @return mixed
     */
    public function thenReturn()
    {
        return $this->then(function ($passable) {
            return $passable;
        });
    }
 
    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
    protected function prepareDestination(Closure $destination)
    {
        return function ($passable) use ($destination) {
            try {
                return $destination($passable);
            } catch (Exception $e) {
                return $this->handleException($passable, $e);
            } catch (Throwable $e) {
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }
 
    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    if (is_callable($pipe)) {
                        // If the pipe is a callable, then we will call it directly, but otherwise we
/var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Middleware/RedirectIfAuthenticated.php
use Closure;
use Illuminate\Support\Facades\Auth;
 
class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect('/home');
        }
 
        return $next($request);
    }
}
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Middleware/CheckForMaintenanceMode.php
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     *
     * @throws \Symfony\Component\HttpKernel\Exception\HttpException
     */
    public function handle($request, Closure $next)
    {
        if ($this->app->isDownForMaintenance()){
            if((Auth::check() && Auth::user()->user_type == 'admin') || (Auth::check() && Auth::user()->user_type == 'staff') || $this->inExceptArray($request)) {
                return $next($request);
            }
            else {
                return abort(503);
            }
        }
 
        return $next($request);
    }
 
    /**
     * Determine if the request has a URI that should be accessible in maintenance mode.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    protected function inExceptArray($request)
    {
        foreach ($this->except as $except) {
            if ($except !== '/') {
                $except = trim($except, '/');
            }
 
            if ($request->fullUrlIs($except) || $request->is($except)) {
                return true;
            }
        }
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Middleware/HttpsProtocol.php
<?php
 
namespace App\Http\Middleware;
 
use Closure;
 
class HttpsProtocol {
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (env('FORCE_HTTPS') == "On" && !$request->secure()) {
            return redirect()->secure($request->getRequestUri());
        }
        return $next($request);
    }
}
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/app/Http/Middleware/Language.php
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(Session::has('locale')){
            $locale = Session::get('locale');
        }
        else{
            $locale = env('DEFAULT_LANGUAGE','en');
        }
 
        App::setLocale($locale);
        $request->session()->put('locale', $locale);
 
        return $next($request);
    }
}
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php
     */
    public function __construct(Registrar $router)
    {
        $this->router = $router;
    }
 
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $this->router->substituteBindings($route = $request->route());
 
        $this->router->substituteImplicitBindings($route);
 
        return $next($request);
    }
}
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php
    }
 
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     *
     * @throws \Illuminate\Session\TokenMismatchException
     */
    public function handle($request, Closure $next)
    {
        if (
            $this->isReading($request) ||
            $this->runningUnitTests() ||
            $this->inExceptArray($request) ||
            $this->tokensMatch($request)
        ) {
            return tap($next($request), function ($response) use ($request) {
                if ($this->shouldAddXsrfTokenCookie()) {
                    $this->addCookieToResponse($request, $response);
                }
            });
        }
 
        throw new TokenMismatchException('CSRF token mismatch.');
    }
 
    /**
     * Determine if the HTTP request uses a ‘read’ verb.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    protected function isReading($request)
    {
        return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']);
    }
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // If the current session has an "errors" variable bound to it, we will share
        // its value with all view instances so the views can easily access errors
        // without having to bind. An empty bag is set when there aren't errors.
        $this->view->share(
            'errors', $request->session()->get('errors') ?: new ViewErrorBag
        );
 
        // Putting the errors in the view for every view allows the developer to just
        // assume that some errors are always available, which is convenient since
        // they don't have to continually run checks for the presence of errors.
 
        return $next($request);
    }
}
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (! $this->sessionConfigured()) {
            return $next($request);
        }
 
        // 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.
        $request->setLaravelSession(
            $session = $this->startSession($request)
        );
 
        $this->collectGarbage($session);
 
        $response = $next($request);
 
        $this->storeCurrentUrl($request, $session);
 
        $this->addCookieToResponse($response, $session);
 
        // Again, if the session has been configured we will need to close out the session
        // so that the attributes may be persisted to some storage medium. We will also
        // add the session identifier cookie to the application response headers now.
        $this->saveSession($request);
 
        return $response;
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php
     * Create a new CookieQueue instance.
     *
     * @param  \Illuminate\Contracts\Cookie\QueueingFactory  $cookies
     * @return void
     */
    public function __construct(CookieJar $cookies)
    {
        $this->cookies = $cookies;
    }
 
    /**
     * Handle an incoming request.
     *
     * @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) {
            $response->headers->setCookie($cookie);
        }
 
        return $response;
    }
}
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
    public function via($method)
    {
        $this->method = $method;
 
        return $this;
    }
 
    /**
     * Run the pipeline with a final destination callback.
     *
     * @param  \Closure  $destination
     * @return mixed
     */
    public function then(Closure $destination)
    {
        $pipeline = array_reduce(
            array_reverse($this->pipes()), $this->carry(), $this->prepareDestination($destination)
        );
 
        return $pipeline($this->passable);
    }
 
    /**
     * Run the pipeline and return the result.
     *
     * @return mixed
     */
    public function thenReturn()
    {
        return $this->then(function ($passable) {
            return $passable;
        });
    }
 
    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  \Illuminate\Http\Request  $request
     * @return mixed
     */
    protected function runRouteWithinStack(Route $route, Request $request)
    {
        $shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
                                $this->container->make('middleware.disable') === true;
 
        $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);
 
        return (new Pipeline($this->container))
                        ->send($request)
                        ->through($middleware)
                        ->then(function ($request) use ($route) {
                            return $this->prepareResponse(
                                $request, $route->run()
                            );
                        });
    }
 
    /**
     * Gather the middleware for the given route with resolved class names.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @return array
     */
    public function gatherRouteMiddleware(Route $route)
    {
        $middleware = collect($route->gatherMiddleware())->map(function ($name) {
            return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);
        })->flatten();
 
        return $this->sortMiddleware($middleware);
    }
 
    /**
     * Sort the given middleware by priority.
     *
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php
        return $route;
    }
 
    /**
     * Return the response for the given route.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Routing\Route  $route
     * @return \Symfony\Component\HttpFoundation\Response
     */
    protected function runRoute(Request $request, Route $route)
    {
        $request->setRouteResolver(function () use ($route) {
            return $route;
        });
 
        $this->events->dispatch(new RouteMatched($route, $request));
 
        return $this->prepareResponse($request,
            $this->runRouteWithinStack($route, $request)
        );
    }
 
    /**
     * Run the given route within a Stack "onion" instance.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  \Illuminate\Http\Request  $request
     * @return mixed
     */
    protected function runRouteWithinStack(Route $route, Request $request)
    {
        $shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
                                $this->container->make('middleware.disable') === true;
 
        $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);
 
        return (new Pipeline($this->container))
                        ->send($request)
                        ->through($middleware)
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function dispatch(Request $request)
    {
        $this->currentRequest = $request;
 
        return $this->dispatchToRoute($request);
    }
 
    /**
     * Dispatch the request to a route and return the response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function dispatchToRoute(Request $request)
    {
        return $this->runRoute($request, $this->findRoute($request));
    }
 
    /**
     * Find the route matching a given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Routing\Route
     */
    protected function findRoute($request)
    {
        $this->current = $route = $this->routes->match($request);
 
        $this->container->instance(Route::class, $route);
 
        return $route;
    }
 
    /**
     * Return the response for the given route.
     *
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function respondWithRoute($name)
    {
        $route = tap($this->routes->getByName($name))->bind($this->currentRequest);
 
        return $this->runRoute($this->currentRequest, $route);
    }
 
    /**
     * Dispatch the request to the application.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function dispatch(Request $request)
    {
        $this->currentRequest = $request;
 
        return $this->dispatchToRoute($request);
    }
 
    /**
     * Dispatch the request to a route and return the response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function dispatchToRoute(Request $request)
    {
        return $this->runRoute($request, $this->findRoute($request));
    }
 
    /**
     * Find the route matching a given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Routing\Route
     */
    protected function findRoute($request)
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     * @return void
     */
    public function bootstrap()
    {
        if (! $this->app->hasBeenBootstrapped()) {
            $this->app->bootstrapWith($this->bootstrappers());
        }
    }
 
    /**
     * Get the route dispatcher callback.
     *
     * @return \Closure
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);
 
            return $this->router->dispatch($request);
        };
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);
 
        $this->app->terminate();
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
     * @return mixed
     */
    public function thenReturn()
    {
        return $this->then(function ($passable) {
            return $passable;
        });
    }
 
    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
    protected function prepareDestination(Closure $destination)
    {
        return function ($passable) use ($destination) {
            try {
                return $destination($passable);
            } catch (Exception $e) {
                return $this->handleException($passable, $e);
            } catch (Throwable $e) {
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }
 
    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    if (is_callable($pipe)) {
                        // If the pipe is a callable, then we will call it directly, but otherwise we
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/fideloper/proxy/src/TrustProxies.php
    {
        $this->config = $config;
    }
 
    /**
     * Handle an incoming request.
     *
     * @param \Illuminate\Http\Request $request
     * @param \Closure                 $next
     *
     * @throws \Symfony\Component\HttpKernel\Exception\HttpException
     *
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        $request::setTrustedProxies([], $this->getTrustedHeaderNames()); // Reset trusted proxies between requests
        $this->setTrustedProxyIpAddresses($request);
 
        return $next($request);
    }
 
    /**
     * Sets the trusted proxies on the request to the value of trustedproxy.proxies
     *
     * @param \Illuminate\Http\Request $request
     */
    protected function setTrustedProxyIpAddresses(Request $request)
    {
        $trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies');
 
        // Trust any IP address that calls us
        // `**` for backwards compatibility, but is deprecated
        if ($trustedIps === '*' || $trustedIps === '**') {
            return $this->setTrustedProxyIpAddressesToTheCallingIp($request);
        }
 
        // Support IPs addresses separated by comma
        $trustedIps = is_string($trustedIps) ? array_map('trim', explode(',', $trustedIps)) : $trustedIps;
 
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php
 
namespace Illuminate\Foundation\Http\Middleware;
 
use Closure;
use Symfony\Component\HttpFoundation\ParameterBag;
 
class TransformsRequest
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $this->clean($request);
 
        return $next($request);
    }
 
    /**
     * Clean the request's data.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return void
     */
    protected function clean($request)
    {
        $this->cleanParameterBag($request->query);
 
        if ($request->isJson()) {
            $this->cleanParameterBag($request->json());
        } elseif ($request->request !== $request->query) {
            $this->cleanParameterBag($request->request);
        }
    }
 
    /**
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php
 
namespace Illuminate\Foundation\Http\Middleware;
 
use Closure;
use Symfony\Component\HttpFoundation\ParameterBag;
 
class TransformsRequest
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $this->clean($request);
 
        return $next($request);
    }
 
    /**
     * Clean the request's data.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return void
     */
    protected function clean($request)
    {
        $this->cleanParameterBag($request->query);
 
        if ($request->isJson()) {
            $this->cleanParameterBag($request->json());
        } elseif ($request->request !== $request->query) {
            $this->cleanParameterBag($request->request);
        }
    }
 
    /**
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php
class ValidatePostSize
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     *
     * @throws \Illuminate\Http\Exceptions\PostTooLargeException
     */
    public function handle($request, Closure $next)
    {
        $max = $this->getPostMaxSize();
 
        if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) {
            throw new PostTooLargeException;
        }
 
        return $next($request);
    }
 
    /**
     * Determine the server 'post_max_size' as bytes.
     *
     * @return int
     */
    protected function getPostMaxSize()
    {
        if (is_numeric($postMaxSize = ini_get('post_max_size'))) {
            return (int) $postMaxSize;
        }
 
        $metric = strtoupper(substr($postMaxSize, -1));
        $postMaxSize = (int) $postMaxSize;
 
        switch ($metric) {
            case 'K':
                return $postMaxSize * 1024;
            case 'M':
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
    public function via($method)
    {
        $this->method = $method;
 
        return $this;
    }
 
    /**
     * Run the pipeline with a final destination callback.
     *
     * @param  \Closure  $destination
     * @return mixed
     */
    public function then(Closure $destination)
    {
        $pipeline = array_reduce(
            array_reverse($this->pipes()), $this->carry(), $this->prepareDestination($destination)
        );
 
        return $pipeline($this->passable);
    }
 
    /**
     * Run the pipeline and return the result.
     *
     * @return mixed
     */
    public function thenReturn()
    {
        return $this->then(function ($passable) {
            return $passable;
        });
    }
 
    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
    }
 
    /**
     * Send the given request through the middleware / router.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    protected function sendRequestThroughRouter($request)
    {
        $this->app->instance('request', $request);
 
        Facade::clearResolvedInstance('request');
 
        $this->bootstrap();
 
        return (new Pipeline($this->app))
                    ->send($request)
                    ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
                    ->then($this->dispatchToRouter());
    }
 
    /**
     * Bootstrap the application for HTTP requests.
     *
     * @return void
     */
    public function bootstrap()
    {
        if (! $this->app->hasBeenBootstrapped()) {
            $this->app->bootstrapWith($this->bootstrappers());
        }
    }
 
    /**
     * Get the route dispatcher callback.
     *
     * @return \Closure
     */
    protected function dispatchToRouter()
/var/www/phsar121_ecommerce/phsar121_laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
    public function __construct(Application $app, Router $router)
    {
        $this->app = $app;
        $this->router = $router;
 
        $this->syncMiddlewareToRouter();
    }
 
    /**
     * Handle an incoming HTTP request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function handle($request)
    {
        try {
            $request->enableHttpMethodParameterOverride();
 
            $response = $this->sendRequestThroughRouter($request);
        } catch (Exception $e) {
            $this->reportException($e);
 
            $response = $this->renderException($request, $e);
        } catch (Throwable $e) {
            $this->reportException($e = new FatalThrowableError($e));
 
            $response = $this->renderException($request, $e);
        }
 
        $this->app['events']->dispatch(
            new RequestHandled($request, $response)
        );
 
        return $response;
    }
 
    /**
     * Send the given request through the middleware / router.
     *
/var/www/phsar121_ecommerce/phsar121_laravel/public/index.php
*/
 
$app = require_once __DIR__.'/../bootstrap/app.php';
 
/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
 
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);
 
$response->send();
 
$kernel->terminate($request, $response);
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
USER
"www-data"
HOME
"/var/www"
HTTP_HOST
"phsar121.com"
HTTP_USER_AGENT
"claudebot"
HTTP_ACCEPT
"*/*"
REDIRECT_STATUS
"200"
SERVER_NAME
"phsar121.com"
SERVER_PORT
"443"
SERVER_ADDR
"159.223.89.177"
REMOTE_PORT
"43372"
REMOTE_ADDR
"54.205.179.155"
SERVER_SOFTWARE
"nginx/1.18.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/1.1"
DOCUMENT_ROOT
"/var/www/phsar121_ecommerce/phsar121_laravel/public"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/social-login/redirect/twitter"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
SCRIPT_FILENAME
"/var/www/phsar121_ecommerce/phsar121_laravel/public/index.php"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1710838823.0086
REQUEST_TIME
1710838823
APP_NAME
"PHSAR121"
APP_ENV
"local"
APP_KEY
"***************************************************"
APP_DEBUG
"true"
APP_URL
"https://phsar121.com"
APP_TIMEZONE
"Asia/Bangkok"
DEMO_MODE
"Off"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"174.138.18.215"
DB_PORT
"3306"
DB_DATABASE
"db_phsar121_production"
DB_USERNAME
"phsar121"
DB_PASSWORD
"******************"
DIR_PATH
"products"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"sync"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
SESSION_DOMAIN
"null"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"****"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.outlook.com"
MAIL_PORT
"587"
MAIL_USERNAME
"support@phsar121.com"
MAIL_PASSWORD
"***********"
MAIL_ENCRYPTION
"TLS"
MAIL_FROM_ADDRESS
"support@phsar121.com"
MAIL_FROM_NAME
"no-reply"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
PAYPAL_CLIENT_ID
"Aa1bxXJnQV4yF9PqmgmBuZ-TXnJMl_SJlqHGa5oBAdbPz8WiY3MJA340XZ8QFwuiH6jTv7wphVULAPNr"
PAYPAL_CLIENT_SECRET
"EHYBU5Z-gWO_6rzS6kiC9d2xZzBRTXcvNy46r7DTk1oN8OCBKTamJRhd3TVK561QNwQ6V2_B_uazCNVQ"
STRIPE_KEY
"pk_test_51HUWfSGRvmmDdlLV4SicdCgwHvugSZJIWnq3JAVRdJFwzkNS94SafaOSsg9qgUdQkO0yyWARKyWSXOjjBXFrvwDD00kYOLnaBQ"
STRIPE_SECRET
"sk_test_51HUWfSGRvmmDdlLV87aRqJ8CVka2HtjB1SQvBzfbWzr7F9KaK5txg23eASkhitYJVz0IgovdnOOi7t6ab3xqGB4D00oAGvGCxq"
SSLCZ_STORE_ID
""
SSLCZ_STORE_PASSWD
""
IM_API_KEY
""
IM_AUTH_TOKEN
""
RAZOR_KEY
""
RAZOR_SECRET
""
PAYSTACK_PUBLIC_KEY
"pk_test_4a1139e7441b0cff2ccfe7cc7990621134a2be9a"
PAYSTACK_SECRET_KEY
"sk_test_19c6e3b954ceb9594f4e4558ea308db4ed46cdae"
PAYSTACK_PAYMENT_URL
"https://api.paystack.co"
MERCHANT_EMAIL
"unicodeveloper@gmail.com"
VOGUE_MERCHANT_ID
"DEMO"
GOOGLE_CLIENT_ID
"722130796113-botia51retpd3ops1n0silvbspaogsic.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET
"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"
FACEBOOK_CLIENT_ID
"1209347249966068"
FACEBOOK_CLIENT_SECRET
"1464aadf405cc4215fb71ccac796d7a5"
TRACKING_ID
"G-CMBEJ1NJ7D"
FACEBOOK_PAGE_ID
"256650194539179"
FACEBOOK_PIXEL_ID
""
DEFAULT_LANGUAGE
"en"
TWILIO_SID
""
TWILIO_AUTH_TOKEN
""
TWILIO_VERIFY_SID
""
VALID_TWILLO_NUMBER
""
NEXMO_KEY
""
NEXMO_SECRET
""
SSL_SMS_USER
"Adyan"
SSL_SMS_SID
""
SSL_SMS_PASSWORD
""
SSL_SMS_URL
"http://sms.sslwireless.com/pushapi/dynamic/server.php"
PAYTM_ENVIRONMENT
"production"
PAYTM_MERCHANT_ID
""
PAYTM_MERCHANT_KEY
""
PAYTM_MERCHANT_WEBSITE
"DEFAULT"
PAYTM_CHANNEL
"WEB"
PAYTM_INDUSTRY_TYPE
"Retail"
SENDER_ID
"FSTSMS"
LANGUAGE
"english"
ROUTE
"q"
AUTH_KEY
""
PAYHERE_MERCHANT_ID
"1215091"
PAYHERE_SECRET
"4kmtyso0vxZ8ggjJN5MyUm4p5k6Cmyswo4ZCcldBFIvs"
PAYHERE_CURRENCY
"USD"
PAYFAST_MERCHANT_ID
"10003008"
PAYFAST_MERCHANT_KEY
"m0sfp3xkxzqlm"
NGENIUS_OUTLET_ID
"765effa3-68d9-4a61-9273-b43261a0c223"
NGENIUS_API_KEY
"OGQyYmY3YWQtYzFiMS00ODljLWEyZDQtZTM5ZWIyYTc4NTcxOjkxMjVkMzNmLWU5YjItNDFlNy05Y2JlLWUwNDEyMGViNDM1YQ=="
NGENIUS_CURRENCY
"AED"
CAPTCHA_KEY
"6Ld_nrsZAAAAAO-MowQQPfbD9yoio52GiMgUrmRX"
FORCE_HTTPS
"Off"
DG_ACCESS_KEY_ID
"NI27UYZTRKZ2MCUOMQBY"
DG_SECRET_ACCESS_KEY
"gWDfIRPKwQHYxq0AnoKZjUzeM/KKZ2E197nEawl2xMI"
DG_DEFAULT_REGION
"sgp1"
DG_BUCKET
"phsar121-content-uploads"
DG_ENDPOIT
"https://sgp1.digitaloceanspaces.com"
DG_URL
"https://content-asset.phsar121.com"
FILESYSTEM_DRIVER
"s3"
IYZICO_API_KEY
"sandbox-1GcasNxaRSuHuxbK1aD67VSSpS2xPE9o"
IYZICO_SECRET_KEY
"sandbox-j7X6sWA2B8qhN6wwyYGbxYYf5JCliceu"
BKASH_CHECKOUT_APP_KEY
"5nej5keguopj928ekcj3dne8p"
BKASH_CHECKOUT_APP_SECRET
"1honf6u1c56mqcivtc9ffl960slp4v2756jle5925nbooa46ch62"
BKASH_CHECKOUT_USER_NAME
"testdemo"
BKASH_CHECKOUT_PASSWORD
"test%#de23@msdao"
NAGAD_MODE
"live"
NAGAD_MERCHANT_ID
"689590404235065"
NAGAD_MERCHANT_NUMBER
"01959040423"
NAGAD_PG_PUBLIC_KEY
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiCWvxDZZesS1g1lQfilVt8l3X5aMbXg5WOCYdG7q5C+Qevw0upm3tyYiKIwzXbqexnPNTHwRU7Ul7t8jP6nNVS/jLm35WFy6G9qRyXqMc1dHlwjpYwRNovLc12iTn1C5lCqIfiT+B/O/py1eIwNXgqQf39GDMJ3SesonowWioMJNXm3o80wscLMwjeezYGsyHcrnyYI2LnwfIMTSVN4T92Yy77SmE8xPydcdkgUaFxhK16qCGXMV3mF/VFx67LpZm8Sw3v135hxYX8wG1tCBKlL4psJF4+9vSy4W+8R5ieeqhrvRH+2MKLiKbDnewzKonFLbn2aKNrJefXYY7klaawIDAQAB"
NAGAD_MERCHANT_PRIVATE_KEY
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYbDBGAuq4lCEyQvSZiTrtaTRT4a7XNgIBd6o+YhH7C7o+6hNbR1P7E3UvW3jQt3ENr+y+ZANBeiswoKcQScD6oyMF56NW3E8HH5Y6aubDzkcERPguD7GInfDkuzH3ilog14Dz65rf/F/ASMyAvpCygYAM20KXFUiSdVxJbBzNmv5jdv7nR8L54g+R70SiMCioY1kmRvd5C9DWALE623maLx2t7hVXwfb5VAt0cFsxkI9yOCdn8Tyt3MKXzHO0y/yCEYJ1ayQo3i1rE8NjXSvyuJ2pL/mzjPnk5dapv5P21ez8OcpXF07YKTUHoScNISQTi+CEW/LgyMBna//HMojhAgMBAAECggEBAJPzEeUqpU9dZHw5rYEwgSo/m1gkliPldeWO6sEOxf/6+m18E5N45X5kxN2FCMiWPyD+PTfCoz8lx1TM3qiR4uz0jULCIbWFkjjqbQaugeclowLWK1tBuzoLztxu5C+3UvnUmQEm9Y9dtg97NOJmZADD6sffNFyYXi5RMK+4ys/6fEti3CTbIKbfT4cOG0NiX0ojcX+8Y4mKkdX8iRFSLmcMyR5QaaDLE/Xhip1qOzNKvHhUtQuHvBt1m/4SSQE0yftvBaPatYAQilPiln9wOzYZ7FpFHEVi9s/IY6LyHfUWc+lvrXZcFDgU+BE9kqQLcrtts+GKyLr0987N9QdXugECgYEA/s25JeeuxAyB/Gaxg3xF+h5jPapC+ytf5SKZEaU5UjbRvFV10Yh/woLG5JbVjiM2gersNJaEHNKBI/Hb4y93UGEsJ7nkZ4ZPqllsBqLgDkqhYU68vnuvtZJ7xxdHWVYd88+he1RhyOKYyHHIrWjI1jI/mXfu/CsILM53L5BxDpECgYEA2XBUuT3Q8GEbhAHrYRNHFox0CSK6kH3RP5FzK87BUdv1U6jv/E8LDH5h57tICRQ2+FW0Hm0bNc2oQmoFUrtxnOTEY8dOgMgksoQOao+nB79CqOhJb5E8czfqzR8sYDUze2uibcNmdey8Irl95aOrkIve50wQkPeo2+SICsCenVECgYBKhiEA1SJodMAP8nk428Abx4d/Ia01iRojClt6rbh2M1JkoxoyjpnPajCB6xvK1sG6fdtYBi3dwDPFL5gAeoGLIOCpPdVv8fia+kx+JGUjyPAqZb0OeV6K3K0XLdfQaT+Zb8DrMWLoPl4xQhZPobYb79ZqLInZdzyM3lY9syFeAQKBgAot1AmH90wJf7xCSr6UpHNNx/DVi15QRYdwS6/1Ud9/KJDuC64IFUBUekja35htNdWSTYhPG0L9ia7yP6WL2Nm7a+Yv4mDs/arNu88JQox+S6SUmzt51Rafu4I2v2ERnINempAA4b8LghMuE9K4QsPViG3ThcMDlQgWPrgiJErBAoGASD6HdAXDgngMz67mgSI0HtkHMGglpKcgVq/ikIIized4hU+POk+9h1+J8KHby3lKP40S9q/WjK4/gO2jb6VnG/rhyzlBkWjJtzS7Jh0E6rPMqDBZw3Zvl7vse5sD0nyAG2/TcPY+g1lvgbA8pKH7N6rbR4iHNEVsPxCVcAzE+58="
PAYSTACK_CURRENCY_CODE
"NGN"
ABA_PAYWAY_API_URL
"https://checkout.payway.com.kh/api/payment-gateway/v1/payments/"
ABA_PAYWAY_API_KEY
"0b28e668e4a90a4b0cf8387d0c1952fe"
ABA_PAYWAY_MERCHANT_ID
"onetwooneshoppecoltd"
ABA_CSS
"https://payway-staging.ababank.com/checkout-popup.html?file=css"
ABA_JS
"https://checkout.payway.com.kh/plugins/checkout2-0-dev.js"
REFERER
"https://phsar121.com/"
FACEBOOK_APP_ID
"171678218621721"
Key Value
APP_NAME
"PHSAR121"
APP_ENV
"local"
APP_KEY
"***************************************************"
APP_DEBUG
"true"
APP_URL
"https://phsar121.com"
APP_TIMEZONE
"Asia/Bangkok"
DEMO_MODE
"Off"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"174.138.18.215"
DB_PORT
"3306"
DB_DATABASE
"db_phsar121_production"
DB_USERNAME
"phsar121"
DB_PASSWORD
"******************"
DIR_PATH
"products"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"sync"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
SESSION_DOMAIN
"null"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"****"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.outlook.com"
MAIL_PORT
"587"
MAIL_USERNAME
"support@phsar121.com"
MAIL_PASSWORD
"***********"
MAIL_ENCRYPTION
"TLS"
MAIL_FROM_ADDRESS
"support@phsar121.com"
MAIL_FROM_NAME
"no-reply"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
PAYPAL_CLIENT_ID
"Aa1bxXJnQV4yF9PqmgmBuZ-TXnJMl_SJlqHGa5oBAdbPz8WiY3MJA340XZ8QFwuiH6jTv7wphVULAPNr"
PAYPAL_CLIENT_SECRET
"EHYBU5Z-gWO_6rzS6kiC9d2xZzBRTXcvNy46r7DTk1oN8OCBKTamJRhd3TVK561QNwQ6V2_B_uazCNVQ"
STRIPE_KEY
"pk_test_51HUWfSGRvmmDdlLV4SicdCgwHvugSZJIWnq3JAVRdJFwzkNS94SafaOSsg9qgUdQkO0yyWARKyWSXOjjBXFrvwDD00kYOLnaBQ"
STRIPE_SECRET
"sk_test_51HUWfSGRvmmDdlLV87aRqJ8CVka2HtjB1SQvBzfbWzr7F9KaK5txg23eASkhitYJVz0IgovdnOOi7t6ab3xqGB4D00oAGvGCxq"
SSLCZ_STORE_ID
""
SSLCZ_STORE_PASSWD
""
IM_API_KEY
""
IM_AUTH_TOKEN
""
RAZOR_KEY
""
RAZOR_SECRET
""
PAYSTACK_PUBLIC_KEY
"pk_test_4a1139e7441b0cff2ccfe7cc7990621134a2be9a"
PAYSTACK_SECRET_KEY
"sk_test_19c6e3b954ceb9594f4e4558ea308db4ed46cdae"
PAYSTACK_PAYMENT_URL
"https://api.paystack.co"
MERCHANT_EMAIL
"unicodeveloper@gmail.com"
VOGUE_MERCHANT_ID
"DEMO"
GOOGLE_CLIENT_ID
"722130796113-botia51retpd3ops1n0silvbspaogsic.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET
"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"
FACEBOOK_CLIENT_ID
"1209347249966068"
FACEBOOK_CLIENT_SECRET
"1464aadf405cc4215fb71ccac796d7a5"
TRACKING_ID
"G-CMBEJ1NJ7D"
FACEBOOK_PAGE_ID
"256650194539179"
FACEBOOK_PIXEL_ID
""
DEFAULT_LANGUAGE
"en"
TWILIO_SID
""
TWILIO_AUTH_TOKEN
""
TWILIO_VERIFY_SID
""
VALID_TWILLO_NUMBER
""
NEXMO_KEY
""
NEXMO_SECRET
""
SSL_SMS_USER
"Adyan"
SSL_SMS_SID
""
SSL_SMS_PASSWORD
""
SSL_SMS_URL
"http://sms.sslwireless.com/pushapi/dynamic/server.php"
PAYTM_ENVIRONMENT
"production"
PAYTM_MERCHANT_ID
""
PAYTM_MERCHANT_KEY
""
PAYTM_MERCHANT_WEBSITE
"DEFAULT"
PAYTM_CHANNEL
"WEB"
PAYTM_INDUSTRY_TYPE
"Retail"
SENDER_ID
"FSTSMS"
LANGUAGE
"english"
ROUTE
"q"
AUTH_KEY
""
PAYHERE_MERCHANT_ID
"1215091"
PAYHERE_SECRET
"4kmtyso0vxZ8ggjJN5MyUm4p5k6Cmyswo4ZCcldBFIvs"
PAYHERE_CURRENCY
"USD"
PAYFAST_MERCHANT_ID
"10003008"
PAYFAST_MERCHANT_KEY
"m0sfp3xkxzqlm"
NGENIUS_OUTLET_ID
"765effa3-68d9-4a61-9273-b43261a0c223"
NGENIUS_API_KEY
"OGQyYmY3YWQtYzFiMS00ODljLWEyZDQtZTM5ZWIyYTc4NTcxOjkxMjVkMzNmLWU5YjItNDFlNy05Y2JlLWUwNDEyMGViNDM1YQ=="
NGENIUS_CURRENCY
"AED"
CAPTCHA_KEY
"6Ld_nrsZAAAAAO-MowQQPfbD9yoio52GiMgUrmRX"
FORCE_HTTPS
"Off"
DG_ACCESS_KEY_ID
"NI27UYZTRKZ2MCUOMQBY"
DG_SECRET_ACCESS_KEY
"gWDfIRPKwQHYxq0AnoKZjUzeM/KKZ2E197nEawl2xMI"
DG_DEFAULT_REGION
"sgp1"
DG_BUCKET
"phsar121-content-uploads"
DG_ENDPOIT
"https://sgp1.digitaloceanspaces.com"
DG_URL
"https://content-asset.phsar121.com"
FILESYSTEM_DRIVER
"s3"
IYZICO_API_KEY
"sandbox-1GcasNxaRSuHuxbK1aD67VSSpS2xPE9o"
IYZICO_SECRET_KEY
"sandbox-j7X6sWA2B8qhN6wwyYGbxYYf5JCliceu"
BKASH_CHECKOUT_APP_KEY
"5nej5keguopj928ekcj3dne8p"
BKASH_CHECKOUT_APP_SECRET
"1honf6u1c56mqcivtc9ffl960slp4v2756jle5925nbooa46ch62"
BKASH_CHECKOUT_USER_NAME
"testdemo"
BKASH_CHECKOUT_PASSWORD
"test%#de23@msdao"
NAGAD_MODE
"live"
NAGAD_MERCHANT_ID
"689590404235065"
NAGAD_MERCHANT_NUMBER
"01959040423"
NAGAD_PG_PUBLIC_KEY
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiCWvxDZZesS1g1lQfilVt8l3X5aMbXg5WOCYdG7q5C+Qevw0upm3tyYiKIwzXbqexnPNTHwRU7Ul7t8jP6nNVS/jLm35WFy6G9qRyXqMc1dHlwjpYwRNovLc12iTn1C5lCqIfiT+B/O/py1eIwNXgqQf39GDMJ3SesonowWioMJNXm3o80wscLMwjeezYGsyHcrnyYI2LnwfIMTSVN4T92Yy77SmE8xPydcdkgUaFxhK16qCGXMV3mF/VFx67LpZm8Sw3v135hxYX8wG1tCBKlL4psJF4+9vSy4W+8R5ieeqhrvRH+2MKLiKbDnewzKonFLbn2aKNrJefXYY7klaawIDAQAB"
NAGAD_MERCHANT_PRIVATE_KEY
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYbDBGAuq4lCEyQvSZiTrtaTRT4a7XNgIBd6o+YhH7C7o+6hNbR1P7E3UvW3jQt3ENr+y+ZANBeiswoKcQScD6oyMF56NW3E8HH5Y6aubDzkcERPguD7GInfDkuzH3ilog14Dz65rf/F/ASMyAvpCygYAM20KXFUiSdVxJbBzNmv5jdv7nR8L54g+R70SiMCioY1kmRvd5C9DWALE623maLx2t7hVXwfb5VAt0cFsxkI9yOCdn8Tyt3MKXzHO0y/yCEYJ1ayQo3i1rE8NjXSvyuJ2pL/mzjPnk5dapv5P21ez8OcpXF07YKTUHoScNISQTi+CEW/LgyMBna//HMojhAgMBAAECggEBAJPzEeUqpU9dZHw5rYEwgSo/m1gkliPldeWO6sEOxf/6+m18E5N45X5kxN2FCMiWPyD+PTfCoz8lx1TM3qiR4uz0jULCIbWFkjjqbQaugeclowLWK1tBuzoLztxu5C+3UvnUmQEm9Y9dtg97NOJmZADD6sffNFyYXi5RMK+4ys/6fEti3CTbIKbfT4cOG0NiX0ojcX+8Y4mKkdX8iRFSLmcMyR5QaaDLE/Xhip1qOzNKvHhUtQuHvBt1m/4SSQE0yftvBaPatYAQilPiln9wOzYZ7FpFHEVi9s/IY6LyHfUWc+lvrXZcFDgU+BE9kqQLcrtts+GKyLr0987N9QdXugECgYEA/s25JeeuxAyB/Gaxg3xF+h5jPapC+ytf5SKZEaU5UjbRvFV10Yh/woLG5JbVjiM2gersNJaEHNKBI/Hb4y93UGEsJ7nkZ4ZPqllsBqLgDkqhYU68vnuvtZJ7xxdHWVYd88+he1RhyOKYyHHIrWjI1jI/mXfu/CsILM53L5BxDpECgYEA2XBUuT3Q8GEbhAHrYRNHFox0CSK6kH3RP5FzK87BUdv1U6jv/E8LDH5h57tICRQ2+FW0Hm0bNc2oQmoFUrtxnOTEY8dOgMgksoQOao+nB79CqOhJb5E8czfqzR8sYDUze2uibcNmdey8Irl95aOrkIve50wQkPeo2+SICsCenVECgYBKhiEA1SJodMAP8nk428Abx4d/Ia01iRojClt6rbh2M1JkoxoyjpnPajCB6xvK1sG6fdtYBi3dwDPFL5gAeoGLIOCpPdVv8fia+kx+JGUjyPAqZb0OeV6K3K0XLdfQaT+Zb8DrMWLoPl4xQhZPobYb79ZqLInZdzyM3lY9syFeAQKBgAot1AmH90wJf7xCSr6UpHNNx/DVi15QRYdwS6/1Ud9/KJDuC64IFUBUekja35htNdWSTYhPG0L9ia7yP6WL2Nm7a+Yv4mDs/arNu88JQox+S6SUmzt51Rafu4I2v2ERnINempAA4b8LghMuE9K4QsPViG3ThcMDlQgWPrgiJErBAoGASD6HdAXDgngMz67mgSI0HtkHMGglpKcgVq/ikIIized4hU+POk+9h1+J8KHby3lKP40S9q/WjK4/gO2jb6VnG/rhyzlBkWjJtzS7Jh0E6rPMqDBZw3Zvl7vse5sD0nyAG2/TcPY+g1lvgbA8pKH7N6rbR4iHNEVsPxCVcAzE+58="
PAYSTACK_CURRENCY_CODE
"NGN"
ABA_PAYWAY_API_URL
"https://checkout.payway.com.kh/api/payment-gateway/v1/payments/"
ABA_PAYWAY_API_KEY
"0b28e668e4a90a4b0cf8387d0c1952fe"
ABA_PAYWAY_MERCHANT_ID
"onetwooneshoppecoltd"
ABA_CSS
"https://payway-staging.ababank.com/checkout-popup.html?file=css"
ABA_JS
"https://checkout.payway.com.kh/plugins/checkout2-0-dev.js"
REFERER
"https://phsar121.com/"
FACEBOOK_APP_ID
"171678218621721"
0. Whoops\Handler\PrettyPageHandler