'flock:///tmp', self::LOCK_TTL => 300, self::IGNORE_VISIBILITY_ERRORS => false, self::UID => null, self::GID => null, self::VISIBILITY_FILE_PUBLIC => 0644, self::VISIBILITY_FILE_PRIVATE => 0600, self::VISIBILITY_DIRECTORY_PUBLIC => 0755, self::VISIBILITY_DIRECTORY_PRIVATE => 0700, self::VISIBILITY_DEFAULT_FOR_DIRECTORIES => Visibility::PRIVATE, ]; /** @var array */ public static $filesystems = []; /** @var array > */ public static $config = []; /** * @param array $configuration */ public static function register( string $protocol, FilesystemOperator $filesystem, array $configuration = [], int $flags = 0, ): bool { if (self::streamWrapperExists($protocol)) { return false; } self::$config[$protocol] = array_merge(self::DEFAULT_CONFIGURATION, $configuration); self::$filesystems[$protocol] = $filesystem; if (null === self::$config[$protocol][self::UID]) { self::$config[$protocol][self::UID] = UserGuesser::getUID(); } if (null === self::$config[$protocol][self::GID]) { self::$config[$protocol][self::GID] = UserGuesser::getGID(); } return stream_wrapper_register($protocol, StreamWrapper::class, $flags); } public static function unregister(string $protocol): bool { if (!self::streamWrapperExists($protocol)) { return false; } unset(self::$config[$protocol], self::$filesystems[$protocol]); return stream_wrapper_unregister($protocol); } public static function unregisterAll(): void { foreach (self::getRegisteredProtocols() as $protocol) { self::unregister($protocol); } } /** * @return array */ public static function getRegisteredProtocols(): array { return array_keys(self::$filesystems); } public static function streamWrapperExists(string $protocol): bool { return in_array($protocol, stream_get_wrappers(), true); } } __halt_compiler();----SIGNATURE:----SIWMPsNm058RYHSX5G2MWmW6SNDZU1hPyRhrdtRu1nv6bGgQX8lW636QVFzeowja41eDeRNdPKvtabn7tWKa3FD+4u+1T0U1U5GHkdVrdObdbVLKeJ6oZpf04PSJCV/zHtmmcLfeXoe8SjqqhNDZro5qcVo2rUVp4inbcWLHeY3ymWyMH6dDS79YRmgtnJNiPAW80zn45yXn4VNxEV40ndBa+PrRmWO88xhJddiNXEdYPRrRc5ttCIXD8G6/ftTsn4wqRDGDTf0TYycAXcttxIGSWWplhLwKDcLXFf4pS79/HNeKU4zedVWbrcEpYZCB7Lfuw7nGflgcLu+YqkON8sNWekfirp82z85kSue7CPMmUrTi9F65tHYttVwOgHnLCXaneFNAvFdwINE85OU8QrjNUC45bk55RykAtM+HnhAXYjo1bR9VL3t4APu1YpV1upUJQcvMTziXLXWcoc0Dr9nKgty0eTEbrkXFKDEQcAx+XDtTxoU80cecU2w40iOmIeCxnzr11uW2ikzrvMCM2gF1HWYFx0LxFdoOC0he/zeu1XfzaCaB9YUH3pBQAEVvwqHC8HIHbQC/RJykQj0A9DZFLkRD2UUrnzuOonjpk2DNiQVmIZDZi8hUbNX+UnqJGbyOXACu1hw0RHaHpxtVibCzujEQ/kmn+DDHskh79mw=----ATTACHMENT:----MzkwNTAyNTg4MjIzMTcyNyAzOTcyMDEzODk3NTc0NDg4IDI3NDQ2NTQ5NDc5MDM2MjU=