$settings __construct($this->session->getSessionDirectoryPath())]]> Logger::$default getMessage wakeup API API API API API API API API API API API API API API API API API API API logger $eventHandler getMessage isInited setEventHandler APIStart \is_callable($callable) $id broadcasts[$id]]]> broadcasts[$id]]]> broadcasts[$id]?->cancel()]]> broadcasts[$id]?->getProgress()]]> filter->whitelist) && !\in_array($peer, $this->filter->whitelist, true)]]> stream]]> getStream()]]> $API $datacenter $shared getInputClientProxy isHttp refreshNext refreshNext $uri $auth_key $data $data $fileName $fileName $fp $options $options $settings $tdesktop_base_path $tdesktop_key $tdesktop_user_base_path tdesktop tdesktop_decrypt tdesktop_fopen tdesktop_fopen_encrypted tdesktop_md5 tdesktop_read_bytearray $part_one_md5 $part_one_md5 $dc $main_dc_id getConfig \is_string($dc) $default[2] $default[2] $API $connectionsPromise $datacenter bind hasTempAuthKey() && $authorized_socket->hasPermAuthKey() && $authorized_socket->isAuthorized() && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]> permAuthKey =& $this->API->datacenter->getDataCenterConnection($dc)->permAuthKey]]> ttl[$index])]]> $cacheTtl Traversable Traversable $index $index $index $index $index $config $config withDatabase(null)]]> getIdleTimeout()]]> getMaxConnections()]]> query("SHOW VARIABLES LIKE 'max_connections'")->fetchRow()['Value']]]> $config $config withDatabase(null)]]> getIdleTimeout()]]> getMaxConnections()]]> $settings $settings $settings DriverArray $v $value $value $v]]> \json_decode($value, true, 256, JSON_THROW_ON_ERROR)]]> $dbSettings $dbSettings $dbSettings $dbSettings $deserializer $deserializer $deserializer $deserializer $serializer $serializer $serializer $serializer $table $table $table $table $old setSettings new static() MemoryArray MemoryArray $array $flags $settings dbSettings]]> $stmt $pdo $v $v $v $v $v $v $v $value \igbinary_unserialize(\hex2bin($v))]]> \unserialize(\hex2bin($v))]]> \json_decode(\hex2bin($value), true, 256, JSON_THROW_ON_ERROR)]]> dbSettings]]> $v $v $v $v $v $value $v]]> \json_decode($value, true, 256, JSON_THROW_ON_ERROR)]]> dbSettings]]> $db db->get($key)]]> $value $stmt $db $db $db fetchRow()['count']]]> $builtUri $uri $webSocketConnector $orig[1][0] === BufferedRawStream::class Rfc6455Connector $class wrapper->getAPI()]]> getParameters()[0]->getType()]]> getDbPrefix self::$pluginCache \array_values startedInternal]]> startedInternal]]> require $file new $class replyCache]]> replyCache]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> $arr['_'] === 'storyItemDeleted' ? new StoryDeleted($this->getClient(), ['user_id' => $this->senderId, 'story' => $arr]) : new Story($this->getClient(), ['user_id' => $this->senderId, 'story' => $arr]), $result )]]> DialogSetTTL DialogSetTTL ]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> $type $peerResolved $peersResolved $adminIds API]]> $API $peerResolved $matches $matches $matches botApiFileId]]> botApiFileUniqueId]]> $thumbs $videoThumbs AbstractAudio AbstractAudio AbstractSticker AbstractSticker AbstractVideo AbstractVideo AnimatedSticker AnimatedSticker Audio Audio CustomEmoji CustomEmoji Document Document DocumentPhoto DocumentPhoto Gif Gif MaskSticker MaskSticker Photo Photo RoundVideo RoundVideo StaticSticker StaticSticker Sticker Sticker Video Video VideoSticker VideoSticker Voice Voice getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> Message getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> $html $htmlTelegram wrapMedia($rawMessage['media'], $this->protected) : null]]> ChannelMessage ChannelMessage wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> DialogTopicCreated DialogTopicEdited DialogTopicEdited DialogTopicEdited wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> GroupMessage GroupMessage getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> DialogScreenshotTaken getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> PrivateMessage PrivateMessage getIdInternal($rawParticipant['peer'])]]> getIdInternal($rawParticipant['peer'])]]> Message getIdInternal($rawCallback['peer'])]]> nextSent]]> wrapMessage($client->extractMessage($result))]]> wrapUpdate($update)]]> wrapUpdate($update)]]> StoryReaction StoryReaction wrapMessage($client->extractMessage($result))]]> wrapUpdate($update)]]> wrapUpdate($update)]]> $first $html $htmlTelegram wrapMedia($rawStory['media'], $this->protected)]]> getIdInternal($rawPeerBlocked['peer_id'])]]> new UsernameInfo($username), $rawUserName['usernames'] )]]> $code $errfile $errline $errno $errstr $file $line $message __invoke self::$map self::$map ??= new WeakMap self::$map ??= new WeakMap wrapper->getAPI()->getEventHandler($class)]]> T|EventHandlerProxy|__PHP_Incomplete_Class|null $data account ??= new \danog\MadelineProto\Namespace\AbstractAPI('account')]]> auth ??= new \danog\MadelineProto\Namespace\AbstractAPI('auth')]]> bots ??= new \danog\MadelineProto\Namespace\AbstractAPI('bots')]]> channels ??= new \danog\MadelineProto\Namespace\AbstractAPI('channels')]]> chatlists ??= new \danog\MadelineProto\Namespace\AbstractAPI('chatlists')]]> contacts ??= new \danog\MadelineProto\Namespace\AbstractAPI('contacts')]]> folders ??= new \danog\MadelineProto\Namespace\AbstractAPI('folders')]]> help ??= new \danog\MadelineProto\Namespace\AbstractAPI('help')]]> langpack ??= new \danog\MadelineProto\Namespace\AbstractAPI('langpack')]]> messages ??= new \danog\MadelineProto\Namespace\AbstractAPI('messages')]]> payments ??= new \danog\MadelineProto\Namespace\AbstractAPI('payments')]]> phone ??= new \danog\MadelineProto\Namespace\AbstractAPI('phone')]]> photos ??= new \danog\MadelineProto\Namespace\AbstractAPI('photos')]]> stats ??= new \danog\MadelineProto\Namespace\AbstractAPI('stats')]]> stickers ??= new \danog\MadelineProto\Namespace\AbstractAPI('stickers')]]> stories ??= new \danog\MadelineProto\Namespace\AbstractAPI('stories')]]> updates ??= new \danog\MadelineProto\Namespace\AbstractAPI('updates')]]> upload ??= new \danog\MadelineProto\Namespace\AbstractAPI('upload')]]> users ??= new \danog\MadelineProto\Namespace\AbstractAPI('users')]]> setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper $class downloadToCallable downloadToDir downloadToFile methodCallAsyncRead uploadFromCallable uploadFromTgfile uploadFromUrl getException()]]> getException();]]> logger $logger $server $previous type($this->message, $this->code, $previous)]]> code]]> exception ? $this->exception->getException() : null]]> ?Throwable $address (int) $port $arguments $arguments $arguments include $autoloadPath $callback $server $payload === self::SHUTDOWN $payload === self::SHUTDOWN unwrap ServerCallback ServerCallback $args $this->__call($id, $args)]]> $data copy unwrap $payload[0] $payload[0] $data Wrapper Wrapper new $class($this, $ids) callbackIds[] = &$callback]]> callbackIds[] = &$callback]]> IteratorAggregate getEventHandler()::class]]> $optional $optional $optional $optional $optional $optional $optional $optional getResource()]]> mode === self::FILE_LOGGER ? $this->optional : Magic::$script_cwd.DIRECTORY_SEPARATOR.'MadelineProto.log']]> optional]]> optional]]> optional]]> stdoutUnbuffered->getResource()]]> $optional $colors $stdout $stdoutUnbuffered colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> getMsgId()]]> API->settings]]> getRpc CheckLoop CheckLoop CheckLoop CheckLoop CheckLoop API]]> CleanupLoop CleanupLoop CleanupLoop CleanupLoop CleanupLoop connection->msgIdHandler?->cleanup()]]> connection->msgIdHandler]]> HttpWaitLoop getSettings PingLoop PingLoop PingLoop PingLoop shared]]> getReason(), ' ')]]> throw $e; bufferRead($payload_length)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(8)]]> $message_data $message_data $message_key getReadBuffer ReadLoop $e $e $e ClosedException getSerializedBody()]]> getSerializedBody()]]> connection->callQueue]]> getWriteBuffer getWriteBuffer WriteLoop connection->isHttp() && empty($this->connection->pendingOutgoing)]]> $callable()]]> API->logger)]]> $msg $messages $update feed feedSingle $state $updater FeedLoop checkSeq feed API->feeders[$channelId]]]> date pts pts pts pts pts qts qts qts update update update update update update update API->authorization['user']]]> API->authorization['user']['bot']]]> $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $feeder UpdateLoop API->feeders[$channelId]?->resume()]]> datacenter)]]> TL)]]> settings)]]> settings)]]> new DataCenter($this) new PeerDatabase($this) $callbacks $callbacks getInputConstructor(...), ), \array_fill_keys( [ 'User', 'Chat', 'Peer', 'InputDialogPeer', 'InputNotifyPeer', ], $this->getInfo(...), ), \array_fill_keys( [ 'InputMedia', 'InputDocument', 'InputPhoto', ], $this->getFileInfo(...), ), [ 'InputFileLocation' => $this->getDownloadInfo(...), 'InputPeer' => $this->getInputPeer(...), 'InputCheckPasswordSRP' => function (string $password): array { return (new PasswordCalculator($this->methodCallAsyncRead('account.getPassword', [])))->getCheckPassword($password); }, ], )]]> array serializeSession authorization['user']['bot']]]> channels_state->get()]]> channels_state->get()]]> channels_state->get()]]> channels_state->get()]]> $path getSelf()['bot']]]> getSelf()['premium']]]> authorization['hint']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['id']]]> logger start start sanitizeReportPeers($userOrId)]]> wrapper) && $this->isInited()]]> wrapper) && isset(self::$references[$this->getSessionName()])]]> authorized === API::LOGGED_IN && \is_int($dc_id)]]> datacenter]]> peerDatabase]]> \is_int($dc_id) datacenter)]]> full_chats]]> settings->getAppInfo()->getLangCode()]]]> getBody state |= self::STATE_ACKED]]> state |= self::STATE_REPLIED]]> state |= self::STATE_SENT]]> authKey]]> authKey]]> authorized {$key} =& $bound->{$key}]]> ack_queue]]> new_outgoing]]> expires $f->await()]]> methodCallAsyncRead resume resume getMaxId $e]]> $response \time() + $seconds $msgId $msgId getMsgId()]]> getMsgId()]]> getMsgId()]]> getMsgId()]]> resume API->authorized_dc == $this->datacenter && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]> $contentRelated $contentRelated generateInSeqNo generateOutSeqNo $msgIdHandler methodCallAsyncRead methodCallAsyncWrite syncLoading getSelf()['id']]]> getSelf()['id']]]> $media extractBotAPIFile($this->MTProtoToBotAPI($media))['file_id']]]> array $data $media genAllFile read[$offset]]]> write[$offset]]]> write[$offset]]]> $messageMedia $old_dc decrypt getReference getReference getReference getReference getReference getReference getReference $res $res $res $res $res $res $res $res $res $res $res $res $res $cb(100, $speed, $time) Message static function (string $payload, int $offset) use ($stream, $seekable, $lock) { $file $file $body $size seek seek $l populateFrom $id $peers $peers $peers $peers db]]> $db powMod pendingDb]]> API->getIdInternal($full)]]> API->getIdInternal($full)]]> API->getIdInternal($id)]]> API->authorization['user']]]> API->authorization['user']['id']]]> fullDb]]> fullDb]]> pendingDb]]> $db $fullDb $usernames (int) $id getInfo($peer, \danog\MadelineProto\API::INFO_TYPE_CONSTRUCTOR)['forum']]]> $channel $channel $channel $channel $channel $filter $filter $filter $filter $filter $folder_id $gres $limit $limit $limit $offset $offset $offset $q $q $q $q $q $res $res $total_count $total_count fetchParticipants fetchParticipantsCache fwdPeerIsset getInputConstructor getInputPeer getParticipantsHash recurseAlphabetSearchParticipants \danog\MadelineProto\API::PEER_TYPE_* $promises $full getIdInternal($id)]]> getIdInternal($id)]]> peerDatabase->getFull($partial['bot_api_id'])]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> API->authorization['user']]]> API->authorization['user']]]> API->authorization['user']['id']]]> API->authorization['user']['id']]]> getDb($locationString)['origins']]]> getDb($locationString)['reference']]]> getDb($locationString)['reference']]]> getDb($locationString)['reference']]]> getDb($locationString)['origins']]]> $db $extra_ranges $range_orig $seek_end wrapMedia([ '_' => 'messageMediaPhoto', 'photo' => $message['action']['photo'] ])]]> wrapMedia([ '_' => 'messageMediaPhoto', 'photo' => $message['action']['photo'] ])]]> nextSent]]> getUpdatesState loadUpdateState getIdInternal($message['action']['from_id'])]]> getIdInternal($message['action']['peer'])]]> getIdInternal($message['action']['to_id'])]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> msg_ids]]> addPendingWakeups waitForInternalStart $first eventHandlerHandlers) !== 0 && \is_array($update)]]> \is_array($update) settings->getConnection()]]> settings->getLogger())) implements LoggerGetter { public function __construct(private Logger $logger) { } public function getLogger(): Logger { return $this->logger; } }]]> completeLogin createApp getApp hasApp settings]]> $value settings->getConnection(), new class(new Logger($this->settings->getLogger())) implements LoggerGetter { public function __construct(private Logger $logger) { } public function getLogger(): Logger { return $this->logger; } }, $this->jar )]]> settings]]> methodCallAsyncRead $wrapper $file $message $level $message $previous $caller $code $message $caller $method $e $fp $n remoteLayer === 8]]> $incoming $outgoing $randomIdMap [$unserialized, $unlock] $ipcSocket $ipcSocket unserialize($this->ipcStatePath)]]> ?IpcState read(null, 1)]]> read(null, 1)]]> $php[0] $php[1] $php[0] $php[1] lightState ??= $this->unserialize($this->lightStatePath)]]> extra]]> $entities $stream $l $append $append_after $memory_stream $stream $append $append_after $decrypt $encrypt $extra $read_buffer $stream $write_buffer $append $append_after read write $hash_name $read_buffer $read_check_after $read_check_pos $read_hash $rev $stream $write_buffer $write_check_after $write_check_pos $write_hash close $obj $socketContext $uri $extra StreamInterface $stream $l $in_seq_no $out_seq_no $stream $l $stream $stream $uri $code $ctx $header $code $current_header[1] $description getStream($header)]]> $stream $l $stream $l $extra $stream $stream $extra $read $code $current_header[1] $description $l getStream()]]> $stream $extra bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(16)]]> bufferRead(2)]]> bufferRead(4)]]> $length $ip getStream(\chr(5).\chr(\strlen($methods)).$methods)]]> setupTls getStream write write $connector $stream $data stream]]> stream]]> stream]]> ?WebsocketMessage ClosedException Rfc6455ConnectionFactory Rfc6455Connector WebsocketConnection WebsocketConnector WebsocketConnector WebsocketHandshake WsStream WssStream $markup parseReplyMarkup }>]]> $arguments[$key] $photo $photoSize $thumbnail $file $message $posClose === false $posClose === false authorization['user']]]> authorization['user']['id']]]> $file $message \is_resource($stream) \is_resource($stream) $value $arg deserialize serializeMethod serializeObject serializeParams $value $value $value botAPIToMTProto logger $elem[1] $elem[1] $elem[1] $elem[1] $afterConstructorDeserialization $afterMethodResponseDeserialization $beforeConstructorDeserialization $beforeConstructorSerialization $beforeMethodResponseDeserialization $constructors $methods $tdDescriptions $typeMismatch (string) $object (string) $object (string) $object findByPredicate findByType deserialize serializeMethod serializeObject findById findByMethod click authorization['user']]]> authorization['user']['id']]]> $c->name !== null]]> $val $this->{$var}]]> getVar $value $value $this->{$var}, $obj, $obj::class, )->__invoke()]]> {$var} =& $val; }, $obj, $obj::class, )->__invoke()]]> __invoke __invoke {$var} =& $val]]> getSelf()['id']]]> udp]]> $stream $crc $encrypted_data bufferRead(4)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(8)]]> getReadBuffer $ack_mask $out_seq_no getStream()]]> udp]]> true ClosedException ClosedException readLength(1))]]> authKey]]> authKey]]> call]]> $visualization $visualization pendingPing]]> call['g_a']]]> $authKey $bestEndpoint $messageHandler API->logger)]]> ]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> $dialogs cachedAllBotUsers]]> cachedAllBotUsers]]> event_handler_instance === null || $this->event_handler_instance instanceof __PHP_Incomplete_Class]]> event_handler_instance instanceof __PHP_Incomplete_Class]]> PluginEventHandler|EventHandlerProxy|null pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> new $class_name array authorization['phone_code']]]> authorization['phone_code_hash']]]> authorization['phone_code_hash']]]> authorization['phone_number']]]> authorization['phone_number']]]> \is_array($auth_key) loop getAuthorization() === \danog\MadelineProto\API::LOGGED_IN]]> array $title $result $result